Java--gui实现,猜数字

Java--gui实现,猜数字,第1张

Java--gui实现,猜数字

编写应用GUI组件的程序,完成猜数游戏:程序随机产生一个数,用户输入猜数,程序每次给出大或小的提示,最多猜十次。
输出示例可参考:

代码实现:

package test;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
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.JScrollPane;
import javax.swing.Jtextarea;
import javax.swing.JTextField;

public class Guessnumber extends Jframe implements ActionListener{
	private static final long serialVersionUID = 1L; 
	
	
	int rand_num;
	int count = 0;
	int max = 100;
	int min = 0;
	
	Jtextarea textarea = new Jtextarea(5,60);
	JTextField text;
	JButton button;
	JPanel p2 = new JPanel(new FlowLayout());
	
	public Guessnumber(){
		Container container = this.getContentPane();  // 设置总的容器
		rand_num = (int)(Math.random()*100) + 1;
		setTitle("猜数字");
		container.setLayout(new BorderLayout());
		setSize(100,200);
		setLocation(400,200);
		setVisible(true);
		setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
		
		JScrollPane p1 = new JScrollPane(textarea);  // 设置文本域
		p1.setSize(200,400);
		
		p2.setPreferredSize(new Dimension(50,50));  // 设置标签
		p2.add(new JLabel("请输入想猜数字:"),FlowLayout.LEFT);
		
		text = new JTextField(35);  // 设置输入框
		text.setSize(1,53);
		text.setLocation(100,50);
		p2.add(text,FlowLayout.CENTER);
		
		button = new JButton("猜一猜");  // 设置按钮
		button.setSize(3,3);
		p2.add(button,FlowLayout.RIGHT);
		button.addActionListener(this);
		
		container.add(p1,BorderLayout.NORTH);
		container.add(p2,BorderLayout.SOUTH);
		pack();
	}
	
	public static void main(String[] args){
		new Guessnumber();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("猜一猜")){
			if(count < 10){
				count++;
				int guess = Integer.parseInt(text.getText());
				if(guess > rand_num){
					max = guess;
					textarea.setText(textarea.getText() + "n第" + count + "次猜的" + guess + "猜大了,在[" + min +"," + max + "]中猜一个数字");
				}else if(guess < rand_num){
					min = guess;
					textarea.setText(textarea.getText() + "n第" + count + "次猜的" + guess + "猜小了,在[" + min +"," + max + "]中猜一个数字");
				}else if(guess == rand_num){
					textarea.setText(textarea.getText() + "n恭喜你!第" + count + "次猜的" + guess + "猜对了!");
				}
			}else{
				textarea.setText(textarea.getText() + "n已经10次了,没有机会了!");
			}
		}
		text.setText("");
	}
}

结果展示:

分析:
1.main函数中最好只写函数的调用。
2.这个界面用到了awt和swing。
3.主类要继承Jframe类,引用ActionListener接口。
4.在主类的构造函数中,要设置总的容器(container),设置文本域(textarea)用来在窗口查看输出的提示等,要设置标签(label)提示输入的内容,要设置输入框(JTextField)来得到输入的内容,要设置按钮(button)来执行相应 *** 作,最后把相关组件添加到容器中。
5.在重写的actionPerformed方法中,写猜数字的具体的代码。
6.猜数字具体的代码需要注意:(1)判断猜数字猜的次数 (2)得出结果后,要在文本域中添加内容,使之能显示出来,同时也要获取之前文本域的内容,与新的内容一起显示 (3)在输出内容后,要把输入框内的内容清除,方便下次继续输入。

在这里推荐一个b站讲gui的视频教程:https://www.bilibili.com/video/BV1DJ411B75F?from=search&seid=18164031753067872366&spm_id_from=333.337.0.0

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5482465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存