さて、私は基本的に基本的な GUI Java プログラムを作成しました。Javaの学習を始めたばかりなので、テキストフィールドにある数値を加算/減算/除算するか、乗算するだけです。動作しますが、実行時や、テキストフィールドに数値を入力せずにラジオボタンのいずれかをクリックするとプログラムが動作しないなど、いくつかのバグがあります。ユーザーがラジオボタンをクリックするたびに、ユーザーが整数を入力したかどうかを確認するにはどうすればよいですか? コードは次のとおりです。
import java.awt.event.*;
import java.text.NumberFormat;
import javax.swing.*;
import java.awt.*;
public class GUI extends JFrame{
Button button1;
TextField num1;
TextField num2;
JRadioButton add,sub,mul,div;
boolean isnumber = false;
int x, y, sum;
public static void main(String[] args){
new GUI();
}
public GUI(){
thehandler handle = new thehandler();
JPanel panel = new JPanel();
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setSize(800, 70);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Calc");
this.add(panel);
button1 = new Button("Calculate");
button1.addActionListener(handle);
panel.add(button1);
num1 = new TextField("Enter a number here");
num1.addActionListener(handle);
num2 = new TextField("Enter a number here");
num2.addActionListener(handle);
panel.add(num1);
panel.add(num2);
add = new JRadioButton("Add");
add.addActionListener(handle);
sub = new JRadioButton("Subtract");
sub.addActionListener(handle);
mul = new JRadioButton("Multiply");
mul.addActionListener(handle);
div = new JRadioButton("Divide");
div.addActionListener(handle);
ButtonGroup operation = new ButtonGroup();
operation.add(add);
operation.add(sub);
operation.add(div);
operation.add(mul);
panel.add(add);
panel.add(sub);
panel.add(mul);
panel.add(div);
}
private class thehandler implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == add){
sum = x + y;
x = Integer.parseInt(num1.getText());
y = Integer.parseInt(num2.getText());
}
if(e.getSource() == sub){
sum = x - y;
x = Integer.parseInt(num1.getText());
y = Integer.parseInt(num2.getText());
}
if(e.getSource() == mul){
sum = x * y;
x = Integer.parseInt(num1.getText());
y = Integer.parseInt(num2.getText());
}
if(e.getSource() == div){
sum = x/y;
x = Integer.parseInt(num1.getText());
y = Integer.parseInt(num2.getText());
}
if(e.getSource() == button1){
JOptionPane.showMessageDialog(null, "The sum of the desired calculation is... " + sum);
}
}
}
}