Java猜数字游戏(图形界面) 您所在的位置:网站首页 java做图形界面 Java猜数字游戏(图形界面)

Java猜数字游戏(图形界面)

2024-07-15 21:08| 来源: 网络整理| 查看: 265

  本文是由java写的带图形界面的猜数字游戏,若想修改图形或者增加自己想要的东西,都可以在代码中添加。例如添加一个警告,若输入的不是数字或者是超过100的数、负数或者小数则跳出警告,并提示错误;或者添加组件想要的组件,使界面更加美观。 text5.java:

package 猜数字; import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; @SuppressWarnings("serial") public class text5 extends JFrame { //继承了JFrame,用JFrame来构造图形界面; GameManager t1 = new GameManager(); //定义一个GameManager对象; JButton button1; JButton button2; //定义两个按钮; JLabel label1 ,label2; //定义标签; public text5() { JPanel j1 = new JPanel(); //定义j1对象(轻量级容器,可以写在JFrame中); j1.setLayout(new GridLayout(1, 1)); //将j1布局定义为GridLayout,一行一列; button1 = new JButton("获取随机数"); button1.addActionListener(new s1(label2 )); //添加button1的监听; j1.add(button1); //将button1加入对象j1; JPanel j2 = new JPanel(); //与j1相同; JTextField txt1 = new JTextField(); //创建单行文本对象txt1; txt1.setPreferredSize(new Dimension(320, 210));//设置txt1文本大小; txt1.addActionListener(new s2(txt1, label2)); //添加txt1的监听; label1 = new JLabel("请输入:"); button2 = new JButton("猜"); button2.setPreferredSize(new Dimension(70,210));//设置button2的大小; button2.addActionListener(new s2(txt1, label2));//添加button2的监听; j2.add(label1); j2.add(txt1); j2.add(button2); //将label1、txt1和button2加入对象j2; JPanel j3 = new JPanel(); //与j1相同; label2 = new JLabel("开始"); j3.add(label2); //将label2加入对象j3; t1.Again(); //调用GameManager.java中的Again方法; Container con = getContentPane(); //定义con容器; con.add(j1, BorderLayout.NORTH); //将j1放在t1的上方; con.add(j2, BorderLayout.CENTER); //将j2放在t1的中间; con.add(j3, BorderLayout.SOUTH); //将j3放在t1的下面; setTitle("猜字游戏"); //界面标题; setSize(500, 350); //界面大小; setLocation(750, 400); //界面初始位置; setVisible(true); //可视化; } class s1 implements ActionListener { //实现了ActionListener接口; JLabel label = new JLabel(); s1( JLabel label) { //s1中传入参数JLabel; this.label = label; } @Override public void actionPerformed(ActionEvent e) { //抽象方法,当按下button1后运行接下来的语句; t1.Again(); label2.setText("请再次输入的整数!"); } } class s2 implements ActionListener { //实现了ActionListener接口; JTextField num = new JTextField(); //定义新的num对象(文本); JLabel label = new JLabel(); s2(JTextField num, JLabel label) { //s2中传入参数JTextField、JLabel; this.num = num; this.label = label; } @Override public void actionPerformed(ActionEvent e) { //按下button2后运行接下来的语句; int number = Integer.parseInt(num.getText());//解析num中的字符串,返回数值; int f; f = t1.G(number); //调用GameManager.java中的G方法; if (f == 1) { label2.setText(number + "\t这个数太大了"); } else if (f == -1) { label2.setText(number + "\t这个数太小了"); } else if (f == 0) { label2.setText("恭喜你,猜对了!"); } num.setText(""); //重新定义num,覆盖上次输入的值; num.requestFocus(); //获取焦点(即运行完上面语句后跳回文本中); } } public static void main(String[] args) { new text5(); //运行方法text5; } }

GameManager.java:

package 猜数字; import java.util.Random; public class GameManager { //创建一个类来构造对象t1; int number = 0; public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public int G(int number) { //创建方法G,对传入text5的number和随机数进行比较; if (number > this.number) { //当number大于随机数时,返回1; return 1; } else if (number return 0; } } public void Again() { //创建方法Again,创建随机数; Random random = new Random(); int num = random.nextInt(99) + 1; //获取一个100以内的随机整数; setNumber(num); } }

运行后得到: 在这里插入图片描述 输入数字后得到: 运行成功后得到: 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有