随机数不会出现在JTextField中

时间:2015-03-16 09:26:00

标签: java swing random awt

我遇到了问题。我创建了一个程序,它会添加两个随机数。我试图将Math.random()放入JTextField,但它不会出现。顺便说一句,这是我的代码:

公共类RandomMathGame扩展了JFrame {

public RandomMathGame(){
    super("Random Math Game");
    int random2;
    JButton lvl1 = new JButton("LEVEL 1");
    JButton lvl2 = new JButton("LEVEL 2");
    JButton lvl3 = new JButton("LEVEL 3");
    JLabel line1 = new JLabel("Line 1: ");
    final JTextField jtf1 = new JTextField(10);
    JLabel line2 = new JLabel("Line 2: ");
    final JTextField jtf2 = new JTextField(10);
    JLabel result = new JLabel("Result: ");
    final JTextField jtf3 = new JTextField(10);
    JButton ans = new JButton("Answer");
    JLabel score = new JLabel("Score: ");
    JTextField jtf4 = new JTextField(3);
    JLabel itm  = new JLabel("Number of Items: ");
    JTextField items = new JTextField(3);
    FlowLayout flo = new FlowLayout();
    setLayout(flo);
    add(lvl1);
    add(lvl2);
    add(lvl3);
    add(line1);
    add(jtf1);
    add(line2);
    add(jtf2);
    add(result);
    add(jtf3);
    add(ans);
    add(score);
    add(jtf4);
    add(itm);
    add(items);
    setSize(140,400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);

    lvl1.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            int i, j = 10;
            int i1 = Integer.valueOf(jtf1.getText());
            int i2 = Integer.valueOf(jtf2.getText());
            int i3 = i1 + i2;
            final int random1 = (int)(Math.random() * 10 + 1);

            for (i = 0; i <= j + 1; i++){
                try{
                    jtf1.setText(String.valueOf(random1));
                    jtf2.setText(String.valueOf(random1));
                    jtf3.setText(String.valueOf(i3));
                }catch(Exception ex){
                    ex.printStackTrace();
                }
            }
        }
    });
}

不要介意lvl2lvl3,因为它在lvl1中是相同的。而且,我想循环它们10次。我在编写这些代码时遇到了困难。有人能帮我吗?谢谢你的帮助。 :)

1 个答案:

答案 0 :(得分:1)

更新循环中的文本字段不会产生您可能想要的动画显示;只会看到最后一次更新。而是使用javax.swing.Timer定期更新字段。可以找到相关示例hereherehere