トレーニングトピック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方法
}
}