100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 猜数字小游戏(图像用户界面编程实验——猜数字游戏)

猜数字小游戏(图像用户界面编程实验——猜数字游戏)

时间:2024-05-30 15:03:24

相关推荐

猜数字小游戏(图像用户界面编程实验——猜数字游戏)

综合运用 GUI 编程相关语法,完成一个简单的猜数字游戏项目。

该程序随机在 1 到 1000 的范围中选择一个供用户猜测的整数。

界面上提供一个文本框来接收用户输入的猜测的数,如果用户猜得太大,则背景变为红色,如果猜得太小,背景变为蓝色。

用户猜对后,文本框变为 不可编辑,同时提示用户猜对了。界面上提供一个按钮,使用户可以重新开始这个游戏。在界 面上还需显示用户猜测的次数。

MyFrame类为图形界面编写类

MyListener类为监视器

Test类为主类

MyFrame类:package com.java.demo5;import java.awt.BorderLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class MyFrame extends JFrame {JLabel lab1,lab2,lab3,lab;JButton btn1,btn2,btn3;JTextField txt;JPanel panel,btn;int i=0;MyFrame(String s){init(s);this.setBounds(300,300,300,200);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void init(String s) {this.setTitle(s);lab1=new JLabel("你已猜测了"+i+"次",JLabel.CENTER);this.add(lab1,BorderLayout.NORTH);lab2=new JLabel("输入猜测的数");lab=new JLabel("");txt=new JTextField(10);panel=new JPanel();panel.add(lab2);panel.add(txt);panel.add(lab);this.add(panel,BorderLayout.CENTER);btn=new JPanel();btn1=new JButton("确定");btn2=new JButton("重新开始");btn3=new JButton("退出");btn.add(btn1);btn.add(btn2);btn.add(btn3);this.add(btn,BorderLayout.SOUTH);MyListener e=new MyListener(this);btn1.addActionListener(e);btn2.addActionListener(e);btn3.addActionListener(e);}}

MyListener类:package com.java.demo5;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JOptionPane;public class MyListener implements ActionListener{MyFrame myframe;int num=(int)(Math.random()*1000)+1;public MyListener(MyFrame myframe) {this.myframe=myframe;}public void text(MyFrame myframe) {myframe.i++;String txt1=myframe.txt.getText();if(Integer.parseInt(txt1)<num) {myframe.panel.setBackground(Color.blue);myframe.lab.setText("太小!");}else if(Integer.parseInt(txt1)>num) {myframe.panel.setBackground(Color.red);myframe.lab.setText("太大!");}else {JOptionPane.showMessageDialog(myframe,"恭喜你,猜对了!!!","恭喜了",JOptionPane.INFORMATION_MESSAGE);}myframe.lab1.setText("你已猜测了"+String.valueOf(myframe.i)+"次");}public void actionPerformed(ActionEvent e) {System.out.println(num);JButton btn=(JButton)e.getSource();String str=btn.getText();if(str.equals("确定")) {this.text(myframe);}else if(str.equals("重新开始")) {myframe.panel.setBackground(Color.white);myframe.i=0;myframe.lab1.setText(null);myframe.txt.setText(null);this.text(myframe);}else {System.exit(0);}}}

Test主类:package com.java.demo5;public class Test {public static void main(String args[]) {MyFrame frame=new MyFrame("猜数字小游戏");}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。