Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

java初心者でeclipseで質問です

下の電卓のクラスとは別にCalculatorクラスを作って
public  void tasu{
}
public void hiku {
}
のように逐一足し算と引き算の機能を書くとしたら
どうなりますか?

public class GUI extends JFrame implements ActionListener{

    public TextField tx1= new TextField("0");
    public     String tmp = "";
    public Calculator cal = new Calculator();
    
    public void create_gui(String s ,  int w , int h){
        
        this.setTitle(s);
        this.setSize(w,h);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLayout(null);

        JPanel jp = new JPanel();
        jp.setLayout(null);
        this.setContentPane(jp);

        Button[] button = new Button[9];
        int button_x = 20;
        int button_y = 200;
        int kankaku = 40;
        int count  = 0 ;

        for(int i = 0 ; i < 3 ; i++){
            for(int j = 0 ; j < 3 ; j++){
                button[count] = new Button(Integer.toHexString(count+1));
                button[count].setBounds(button_x , button_y,30,30);
                button[count].addActionListener(this);
                jp.add(button[count]);
                button_x = button_x + kankaku;
                count ++ ;
            }
            button_x = 20;
            button_y = button_y - kankaku;
        }

        
        Button b1 = new Button("0");
        b1.setBounds(20, 240, 70, 30);
        b1.addActionListener(this);
        jp.add(b1);

        
        Button b2 = new Button("=");
        b2.setBounds(100, 240, 30, 30);
        b2.addActionListener(this);
        jp.add(b2);

        
        Button b3 = new Button("+");
        b3.setBounds(140, 120, 30, 30);
        b3.addActionListener(this);
        jp.add(b3);

        Button b4 = new Button("-");
        b4.setBounds(140, 160, 30, 30);
        b4.addActionListener(this);
        jp.add(b4);

        Button b5 = new Button("Del");
        b5.setBounds(20, 80, 150, 30);
        b5.addActionListener(this);
        jp.add(b5);
        
        tx1.setBounds(20, 40, 150, 30);
        jp.add(tx1);
    }
    public static void main(String[] args) {
    
        GUI gui = new GUI();
        gui.create_gui("電卓" , 200 , 330);
    }
    public void actionPerformed(ActionEvent e) {
    
        String s = e.getActionCommand();
        //System.out.println(s);
            if(s.equals("1")){
               tmp = tmp + s;
                 tx1.setText(tmp);
            }else if(s.equals("2")){
                tmp = tmp + s;
                tx1.setText(tmp);
            }else if(s.equals("3")){
                tmp = tmp + s;
                tx1.setText(tmp);
            }else if(s.equals("4")){
                tmp = tmp + s;
                tx1.setText(tmp);
            }else if(s.equals("5")){
                tmp = tmp + s;
                tx1.setText(tmp);
            }else if(s.equals("6")){
                tmp = tmp + s;
                tx1.setText(tmp);
            }else if(s.equals("7")){
                tmp = tmp + s;
                tx1.setText(tmp);
            }else if(s.equals("8")){
                tmp = tmp + s;
                tx1.setText(tmp);
            }else if(s.equals("9")){
                tmp = tmp + s;
                tx1.setText(tmp);
            }else if(s.equals("0")){
                tmp = tmp + s;
                tx1.setText(tmp);
        
            }else if(s.equals("+")){
                  tx1.setText(s);;
            }else if(s.equals("-")){
                tx1.setText(s);;    
            }else if(s.equals("=")){
                tx1.setText(s);    
            }else if(s.equals("Del")){
                tx1.setText("0");    
              tmp = "";
        }
    }
}

2

回答

11395

閲覧

2件の回答

評価

0

入力中の数字を格納する変数と、前回押された+-ボタンを保持する変数用意して、
数字ボタンやDelが押されたら、数字を組み立てて、画面表示してやって、
+-ボタンやイコールボタンで、Calculatorクラスの演算用のメソッドを
呼んでやりゃ良いんでない?

評価

0

複数のボタンがあるのに、
リスナはばかでかいのがひとつ、内部でif分岐か。
Javaが泣いているぞ。(T_T)

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。