import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class guess extends JFrame implements ActionListener
{
JLabel title = new JLabel ("SAMPLE 1");
JTextField txt1 = new JTextField (10);
JLabel direction = new JLabel ("GUESS A NUMBER BETWEEN 1 AND 100");
JLabel status = new JLabel ();
JPanel pnl1 = new JPanel ();
JPanel pnl2 = new JPanel ();
JPanel pnl3 = new JPanel ();
public guess()
{
super ("guess the number");
Container c = getContentPane();
c.setLayout (new BorderLayout());
txt1.addActionListener(this);
pnl2.setLayout (new BorderLayout());
c.add(pnl1, BorderLayout.NORTH);
c.add(pnl2, BorderLayout.CENTER);
pnl1.add(title);
pnl2.add(direction, BorderLayout.NORTH);
pnl2.add(txt1, BorderLayout.CENTER);
pnl2.add(status, BorderLayout.SOUTH);
setVisible(true);
setSize(350,450);
}
public void guess(int i)
{
super ("guess the number");
Container c = getContentPane();
c.setLayout (new BorderLayout());
txt1.addActionListener(this);
pnl2.setLayout (new BorderLayout());
c.add(pnl1, BorderLayout.NORTH);
c.add(pnl2, BorderLayout.CENTER);
pnl1.add(title);
pnl2.add(direction, BorderLayout.NORTH);
pnl2.add(txt1, BorderLayout.CENTER);
pnl2.add(status, BorderLayout.SOUTH);
setVisible(true);
setSize(350,450);
}
public static void main(String args[])
{
guess start = new guess();
start.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
int counter = 1;
int num = (int)(Math.random() * 100);
if (e.getSource()==txt1)
{
int a = Integer.parseInt(txt1.getText());
while(a != num)
{
if(a < num)
int x = num - 10;
if(a >= x)
{
}
}
}
}
}
这是我的代码,但我的问题是在actionPerformed中,我不知道什么时候把int num = (int)(Math.random() * 100);
放在if(e.getSource)
之外,因为如果我把它放在if(e.getSource)
之外,它总是会生成一个随机数,但如果在我的新问题是,如果我重置了输入的新值,我猜int num = (int)(Math.random() * 100);
会得到新值吗?
发布于 2010-09-11 23:55:06
您应该添加一个start按钮,并在默认情况下禁用输入文本字段。
当单击start按钮时,输入文本字段将变为启用状态,并为该轮游戏生成一个随机数。
您也可以在玩游戏时禁用start按钮。
您可能想要限制猜测的次数,在此之后玩家会输掉游戏,并且启用start按钮并禁用输入文本字段,直到新游戏开始。
https://stackoverflow.com/questions/3691596
复制相似问题