JAVA 每个按钮的 ActionListener
JAVA ActionListener for every button
我正在尝试在 java GUI 中制作简单的计算器。我到了可以清楚地看到代码很丑的地步,因为重复的函数如下:
number0 = new JButton("0");
number0.setBounds(130, 280, 50, 50);
add(number0);
number0.addActionListener(new GetNumber0());
public class GetNumber0 implements ActionListener {
public void actionPerformed(ActionEvent e) {
String text =number0.getText();
int num = Integer.parseInt(text);
result=(result*10)+num; // +num if else than 0
lResult.setText("Result: "+result);
}
}
我正在为每个按钮做这件事,有没有办法让这段代码看起来更好?我希望有一种东西可以从每个按钮单独获取一个变量,并只在一个名为 GetNumber() 的函数中使用它。
您不需要创建单独的侦听器,您确实不应该这样做。写 String text = number0.getText();
没有用,因为你已经知道它会是 0
.
在按钮之间共享ActionListener
。
public class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) e.getSource();
int num = Integer.parseInt(btn.getText());
result=(result*10)+num;
lResult.setText("Result: "+result);
}
}
我正在尝试在 java GUI 中制作简单的计算器。我到了可以清楚地看到代码很丑的地步,因为重复的函数如下:
number0 = new JButton("0");
number0.setBounds(130, 280, 50, 50);
add(number0);
number0.addActionListener(new GetNumber0());
public class GetNumber0 implements ActionListener {
public void actionPerformed(ActionEvent e) {
String text =number0.getText();
int num = Integer.parseInt(text);
result=(result*10)+num; // +num if else than 0
lResult.setText("Result: "+result);
}
}
我正在为每个按钮做这件事,有没有办法让这段代码看起来更好?我希望有一种东西可以从每个按钮单独获取一个变量,并只在一个名为 GetNumber() 的函数中使用它。
您不需要创建单独的侦听器,您确实不应该这样做。写 String text = number0.getText();
没有用,因为你已经知道它会是 0
.
在按钮之间共享ActionListener
。
public class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) e.getSource();
int num = Integer.parseInt(btn.getText());
result=(result*10)+num;
lResult.setText("Result: "+result);
}
}