如何在 Java 中使用事件侦听器和小部件查看器来增加数字?
How to increment numbers using Event Listeners and Widget Viewer in Java?
我正在编写一个 WidgetViewer GUI,当按下“go up/up”按钮时,会生成一个介于 1 和 10(含)之间的随机数并将其添加到左侧标签,以及另一个随机数生成 1 到 10(含)之间的数字并将其添加到正确的标签中。
所需的小部件是:一个标记为“go up/up”的按钮、一个初始化为 0 的标签(左标签)和一个初始化为 0 的标签(右标签)。
这是我目前拥有的:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Jbutton;
import javax.swing.JLabel;
public class UpDown {
private JLabel jleft;
private JLabel jright;
public UpDown() {
WidgetViewer wv = new WidgetViewer();
jleft = new JLabel("0");
jright = new JLabel("0");
JButton upUp = new JButton("go up/up");
upUp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String lval = jleft.getText();
int newlVal = Integer.parseInt(lval) + 1 + (int)(Math.random() * (10));
jleft.setText(String.valueOf(newlVal));
String rval = jright.getText();
int newrVal = Integer.parseInt(rval) + 1 + (int)(Math.random() * (10));
jleft.setText(String.valueOf(newrVal));
}
});
}
然而,当我 运行 这个和当我点击按钮时,它每次只显示一个新数字而没有添加。我怎样才能让它每次都递增?
左值处理正确,右值计算也正确...但存储在左值的 ui- 元素中...
jleft.setText(String.valueOf(newrVal));
=> 覆盖之前正确的左值,重置它。只需替换为
jright.setText(String.valueOf(newrVal));
我正在编写一个 WidgetViewer GUI,当按下“go up/up”按钮时,会生成一个介于 1 和 10(含)之间的随机数并将其添加到左侧标签,以及另一个随机数生成 1 到 10(含)之间的数字并将其添加到正确的标签中。
所需的小部件是:一个标记为“go up/up”的按钮、一个初始化为 0 的标签(左标签)和一个初始化为 0 的标签(右标签)。
这是我目前拥有的:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Jbutton;
import javax.swing.JLabel;
public class UpDown {
private JLabel jleft;
private JLabel jright;
public UpDown() {
WidgetViewer wv = new WidgetViewer();
jleft = new JLabel("0");
jright = new JLabel("0");
JButton upUp = new JButton("go up/up");
upUp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String lval = jleft.getText();
int newlVal = Integer.parseInt(lval) + 1 + (int)(Math.random() * (10));
jleft.setText(String.valueOf(newlVal));
String rval = jright.getText();
int newrVal = Integer.parseInt(rval) + 1 + (int)(Math.random() * (10));
jleft.setText(String.valueOf(newrVal));
}
});
}
然而,当我 运行 这个和当我点击按钮时,它每次只显示一个新数字而没有添加。我怎样才能让它每次都递增?
左值处理正确,右值计算也正确...但存储在左值的 ui- 元素中...
jleft.setText(String.valueOf(newrVal));
=> 覆盖之前正确的左值,重置它。只需替换为
jright.setText(String.valueOf(newrVal));