没怎么系统学习java 靠着上网查点资料 要写一个数学算术题 预想是按下一题的按钮能重新出现一个新题目 运行下来下一题的按钮没反应 可以帮忙看看哪里出错了并指正吗 谢谢
package com.one.component;
import javax.swing.;
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import java.awt.;
public class Exercisedemo {
public static int g = 1;
public static int i = 0;
public static void main(String[] args) {
do {
i = i + 1;
//for (int i = 0; i < g; i++) {
Frame frame = new Frame("数学练习题");
new TextField();
TextField timu;
int result;
Random a = new Random();
int number1 = a.nextInt(100);
Random b = new Random();
int number2 = b.nextInt(100);
Random c = new Random();
int number3 = c.nextInt(2);
if (number3 == 0) {
result = number1 + number2;
timu = new TextField(number1 + "+" + number2 + "=");
} else {
timu = new TextField(number1 + "-" + number2 + "=");
result = number1 - number2;
}
TextField pingyu = new TextField(30);
TextField daan = new TextField();
daan.setColumns(10);
daan.setEditable(true);
Button ok = new Button("确认");
Button over = new Button("结束");
Button exit = new Button("退出");
Button next = new Button("下一题");
Box bbox = Box.createHorizontalBox();
bbox.add(ok);
bbox.add(next);
bbox.add(over);
bbox.add(exit);
frame.add(bbox, BorderLayout.SOUTH);
Box cbox = Box.createHorizontalBox();
cbox.add(timu);
cbox.add(daan);
Box center = Box.createVerticalBox();
center.add(cbox);
center.add(pingyu);
frame.add(center);
frame.pack();
frame.setVisible(true);
//next.setVisible(false);
ok.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//super.mouseClicked(e);
int huida = Integer.parseInt(daan.getText());
if (huida == result) {
pingyu.setText("回答正确");
} else {
pingyu.setText("回答错误");
}
}
});
next.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
g = g + 1;
}
});
exit.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.exit(0);
}
});
} while (i < g);
}
}
将出题的逻辑抽成一个方法,每次触发事件的时候,需要去调用生成题目,然后赋值给组件。
你目前的逻辑,只是触发了事件,并没有去新生成题目并赋值给对应的组件。