0

ラベルで現在利用可能な値を取得し、数値で追加(計算)してテキストフィールドに表示したかったのですが、エラーがあります

private void ch13ActionPerformed(java.awt.event.ActionEvent evt)     

    r1=Integer.parseInt(tLabel.getText());  //r2 and r1 are integers               

    // error .. It says "Void type not allowed here"
    r2 = Integer.parseInt(tLabel.setText(String.valueOf("3")));    


    result=r1+r2; 
    creaditTxt.setText(result+"");
}

では、どうすればこの問題を解決できますか?

4

1 に答える 1

0

setText()戻りますvoid。なのでこうすることで

r2 = Integer.parseInt(tLabel.setText(String.valueOf("3"))); 

あなたはそれを言っているr2=無効です。それは可能ではありません。

代わりに 2 つのテキストフィールドと、結果を表示するためのラベルが必要な場合があります

public class AddFrame extends JFrame {
    private JLabel result = new JLabel();
    private JTextField number1 = new JTextField(10);
    private JTextField number2 = new JTextField(10);
    private JButton addBut = new JButton("Add");

    public AddFrame(){
        setLayout(new GridLayout(4, 1));
        add(result);
        add(number1);
        add(number2);
        add(addBut);

        addBut.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                int num1 = Integer.parseInt(number1.getText());
                int num2 = Integer.parseInt(number2.gettext());
                int total = num1 + num2;
                result.setText(String.valueOf(total));
            }
        });
    }

    public static void main(String[] args){
        SwingUtilities.invokeLater(new Runnable(){
            public void run(){
                AddFrame frame = new AddFrame();
                frame.pack();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });

    }

}
于 2013-11-14T05:04:35.590 に答える