实训题4:
实训目的:掌握Java GUI编程和随机函数的使用。
实训要求:每次产生一个0-99之间的随机数,用户输入猜测的数字后,点击“试试”,系统将给出“大了”或“小了”的提示信息,帮助用户直到猜对结果为之。实现效果如上图。
代码
package exam4;
import java.awt.*;
import java.util.Random;
import javax.swing.*;
import javax.swing.text.JTextComponent;
public class Windows {
static Random R = new Random();
static int temp=R.nextInt(100);
private static JTextComponent inputField;
private static void createAndShowGUI()
{
JFrame frame = new JFrame("猜数字游戏");//创建设置JFrame容器窗口
frame.setLayout(new BorderLayout());
frame.setSize(600, 300);
frame.setLocation(450,330);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextArea showArea = new JTextArea(12,34);
//JScrollPane scroLLpane = new JScrollPane(showArea);
showArea.setEditable(true);
JTextField chat = new JTextField(20);
JButton bt =new JButton("确定");
JButton bt1 = new JButton("查看答案");
JButton bt2 = new JButton("重新开始");
JButton bt3 = new JButton("退出");
bt.addActionListener(e ->
{
String content = chat.getText();
if((content!=null) && (!content.trim().equals("")))//判断是否为空
{
int j = Integer.valueOf(content);
if(j<=99)
{
if (j>temp)
{
showArea.append("不对哦!"+j+"猜大了,再猜猜看看?\n");
}
if (j<temp )
{
showArea.append("不对哦!"+j+"猜小了,再猜猜看看?\n");
}
if (j==temp)
{
showArea.append("恭喜你!数字是"+temp+"!不错哦!快去买彩票吧!\n");
}
}
else
{
showArea.append("输入的数字超过范围了,重新输入吧!\n");
}
chat.setText("");
}
else
showArea.append("输入不为空,请重新输入!\n");
}
);
bt1.addActionListener(e ->
{
showArea.append("答案是"+temp+",你猜对了吗?\n");
});
bt2.addActionListener(e ->
{
Random r = new Random();
temp=r.nextInt(100);
showArea.setText(" ");
showArea.append("========数字已经重置,快来猜猜吧!==========\n");;
});
bt3.addActionListener(e ->
{
System.exit(0);
});
JPanel panel = new JPanel();
JLabel label = new JLabel("请输入数字,范围0~99");
panel.add(showArea);
panel.add(label);
panel.add(chat);
panel.add(bt);
panel.add(bt1);
panel.add(bt2);
panel.add(bt3);
frame.add(panel,BorderLayout.CENTER);
frame.setVisible(true);
} public static void main(String [] args)
{
SwingUtilities.invokeLater(Windows::createAndShowGUI);//SwingUtilities工具调用create方法
}
}