2013-05-30 42 views
0

我写了一个GUI程序来猜测1到200之间的随机数。当我运行它时,我无法让它正确执行。我可以两次猜出相同的数字,有时候会说“太低”,有时会说“太高”。我必须尝试一些我尝试玩的游戏,但是我为什么这样做不起作用而迷失了方向。这里是我的代码:如何在GUI中生成一个随机数字?

import java.util.Random; 


    public class GuessPanel extends javax.swing.JPanel { 

     protected Random random; 
     protected int x; 
     protected int n; 

    public GuessPanel() { 
     initComponents(); 
    } 


    @SuppressWarnings("unchecked") 
    **Generated Code**      

    private void guessButtonActionPerformed(java.awt.event.ActionEvent evt) {            
     random = new Random(); 
     String s = userField.getText(); 
     int i = 200; 
     x = random.nextInt(i); 

     n = Integer.parseInt(s); 

     if (x == n) 
     { 
      answerLabel.setText("You guessed right!!!"); 
     } 
     else if (x > n) 
     { 
      answerLabel.setText("Your guess is too low, guess again"); 
     } 
     else if (x < n) 
     { 
      answerLabel.setText("Your guess is too high, guess again"); 
     } 
}           
// Variables declaration - do not modify      
private javax.swing.JLabel answerLabel; 
private javax.swing.JButton guessButton; 
private javax.swing.JLabel jLabel1; 
private javax.swing.JTextField userField; 
// End of variables declaration     

}

+0

它正在做你正在问的事情。 – wazy

回答

7

你生成一个新的随机数每次“猜测”按钮被按下的时间。要么在GUI加载时做一次,要么创建一个新按钮来重置游戏并将您的随机数生成代码放在那里。

+0

那么我会在构造函数中做到这一点? – user2272625

+0

@ user2272625是的,您可以在构造函数或initComponents()方法中执行它,因为它是由构造函数调用的。我会选择在'initComponents()'中执行它,因为您可以从“重置”按钮处理程序中调用该方法。 –

+0

好的。谢谢,我明白了。 – user2272625

相关问题