0

私は、答えを計算するために2つの数値と操作(jcombobox内)を取るJFrameプログラムを作成しようとしています。1 番と 2 番のユーザー入力を取得し、その値を答えの計算に使用できる int に割り当てる必要があります。num1 は int 変数で、num1field はテキストフィールドの名前です。

    num1field.addActionListener(
        new ActionListener(){
            public void actionPerformed(ActionEvent event){
                num1 = Integer.parseInt(num1field.getText());
                num1field.setText(num1);
            }
        }
     );

はい、num1 int は既にクラスの先頭で宣言されています。setText というエラーが表示されます。

すべての助けをありがとう:)

4

1 に答える 1

2

メソッドはありませんJTextField#setText(int)String

num1field.setText(String.valueOf(num1));

動作するはずです

書式設定されたテキスト フィールドの使用方法とスピナーの使用方法をご覧になると、達成しようとしている機能が向上する可能性があります。

結果の値を計算する方法のアイデアの例で更新

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class QuickCalc {

    public static void main(String[] args) {
        new QuickCalc();
    }

    public QuickCalc() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        private JTextField numField1;
        private JTextField numField2;
        private JComboBox cbModifier;
        private JLabel lblResult;

        private JButton equals;

        public TestPane() {

            numField1 = new JTextField(4);
            numField2 = new JTextField(4);
            cbModifier = new JComboBox();
            equals = new JButton("=");
            lblResult = new JLabel("?");

            DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>();
            model.addElement("+");
            model.addElement("-");
            model.addElement("/");
            model.addElement("x");
            cbModifier.setModel(model);

            setLayout(new GridBagLayout());
            add(numField1);
            add(cbModifier);
            add(numField2);
            add(equals);
            add(lblResult);

            equals.addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent e) {
                    try {
                        int num1 = Integer.parseInt(numField1.getText());
                        int num2 = Integer.parseInt(numField2.getText());

                        // Make your calculations here...
                        // Update the lblResult with the resulting value...
                        lblResult.setText(String.valueOf(42));                        
                    } catch (NumberFormatException nfe) {
                        nfe.printStackTrace();
                        lblResult.setText("Bad numbers");
                    }
                }                    
            });
        }
    }
}
于 2013-08-21T00:51:45.997 に答える