要点を言えば、外部の ActionListener クラスから static double 変数または JTextField に書き込むことはできません。私は高度な計算機を作成しています。物事を簡単にするために、GUI を作成し、そのボタンやその他の機能を実装しようとしています。また、ActionListeners を別のクラスに配置しようとしています。日食では、電卓の変数を静的にする必要があると言われていますが、それらを静的にすると、それらに書き込むことができなくなり、回答を表示できなくなります。これは私が持っているコードです:
public static JButton num0, num1, num2, num3, num4, num5, num6, num7, num8, num9;
public static double tempNum1;
public static double tempNum2;
public static boolean pointOn = false;
public static int APC = 1;
public GUI(){
GUINumListener numListener = new GUINumListener();
num0.addActionListener(numListener);
num1.addActionListener(numListener);
num2.addActionListener(numListener);
num3.addActionListener(numListener);
num4.addActionListener(numListener);
num5.addActionListener(numListener);
num6.addActionListener(numListener);
num7.addActionListener(numListener);
num8.addActionListener(numListener);
num9.addActionListener(numListener);
}
そして GUINumListener クラスで:
public class GUINumListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if (e.getActionCommand().equals(GUI.num0)){
GUI.tempNum2 *= 10;
}else if (e.getActionCommand().equals(GUI.num1)){
if (GUI.pointOn = false){
GUI.tempNum2 = (GUI.tempNum2 * 10) + 1;
}else{
GUI.tempNum2 = (GUI.tempNum2 * Math.pow(10, GUI.APC) + 1) / Math.pow(10, GUI.APC);
GUI.APC++;
}
GUI.ansField.setText(Double.toString(GUI.tempNum2));
}
}
プログラム内の数値をクリックしても ansField フィールドに出力されません。ヘルプ!ありがとう