问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java编写一个“猜数”程序:该程序随机在1到1000的范围中选择一个供用户猜测的整数

发布网友 发布时间:2022-05-26 21:29

我来回答

1个回答

热心网友 时间:2023-11-03 19:19

Java源程序附后。
本程序的特点是:
(1) 文本框只能输入纯数字;
(2) 界面较美观;
(3) 代码可读性较好,有适当的注释;
(4) 窗体一出现就在桌面居中。

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

public class GuessNumber {
private static final long serialVersionUID = 1L;
JFrame frame;
JTextField txtNum;//文本框
JButton btnStart;//按钮
JLabel lblPrompt;
JLabel lblMessage;
static int source = 0;
static Random rand = new Random();

public GuessNumber(){
frame = new JFrame("Guess Number");
JPanel pnl1, pnl2, pnl3, pnl4;
pnl1 = new JPanel();
pnl1.setLayout(new FlowLayout(FlowLayout.LEFT));
pnl2 = new JPanel();
pnl2.setLayout(new FlowLayout(FlowLayout.LEFT));
pnl3 = new JPanel();
pnl3.setLayout(new FlowLayout(FlowLayout.LEFT));
pnl4 = new JPanel();
pnl4.setLayout(new FlowLayout(FlowLayout.LEFT));
txtNum = new JTextField(10);
btnStart = new JButton("开始");
lblPrompt = new JLabel("<html><body>I have a number between 1 and 1000 can you guess my number?<br/>Please enter your first guess.</body></html>");
lblMessage = new JLabel();
pnl1.add(lblPrompt);
pnl2.add(txtNum);
pnl3.add(lblMessage);
pnl4.add(btnStart);
frame.setLayout(new GridLayout(4, 1));
frame.add(pnl1);
frame.add(pnl2);
frame.add(pnl3);
frame.add(pnl4);

txtNum.addActionListener(this.new TextAction());
txtNum.addKeyListener(this.new KeyAction());
btnStart.addActionListener(this.new ButtonAction());
frame.setSize(400, 200);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
}

public static void main(String[] args) {
new GuessNumber();
while((source=rand.nextInt(1000))==0);
}

//按钮单击后的事件处理
class ButtonAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton)e.getSource();
if(btn == btnStart){
while((source=rand.nextInt(1000))==0);
txtNum.setEditable(true);
}
}
}

//文本框按回车后的事件处理
class TextAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JTextField txt = (JTextField)e.getSource();
if(txt != txtNum){
return;
}
int num = Integer.parseInt(txtNum.getText());
if(num == source){
lblMessage.setText("Correct!");
txtNum.setEditable(false);
txtNum.setBackground(frame.getBackground());
}
else if(num > source){
lblMessage.setText("Too High");
txtNum.setBackground(Color.red);
}
else{
lblMessage.setText("Too Low");
txtNum.setBackground(Color.blue);
}
}
}

//*文本框只能输入数字
class KeyAction implements KeyListener{
@Override
public void keyPressed(KeyEvent e) {
}

@Override
public void keyReleased(KeyEvent e) {
}

@Override
public void keyTyped(KeyEvent e) {
int k = e.getKeyChar();
String text = ((JTextField)e.getSource()).getText();
if(!((k>47 && k <58) || (k==8 || k==KeyEvent.VK_PERIOD))){//*只能输入数字
e.setKeyChar((char)KeyEvent.VK_CLEAR);
}
if(text.length() > 4){//*数值的长度
e.setKeyChar((char)KeyEvent.VK_CLEAR);
}
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? java swing的问题 Java题,求大佬解答 setLocationRelativeTo是什么意思? dialog.setLocationRelativeTo(null);这是什么意思丫?? Java中setLocationRelativeTo是什么意思? 机箱电源 350w 多少钱啊大概 中触媒上市发行价大概是多少 我新配的电脑,电源是额定350W,没问题吧 机箱加350W电源(快!有分加) 350W的电脑主机电源哪个好? 电脑电源是350W的,是说一小时用掉350W的意思吗? 电脑主机的电源上写着最大功率350W,那额定是多少?能带起GT240吗? 机箱350w电源+19寸液晶显示器大约多久用一度电啊 电脑电源350W代表什么意思?是不是越大越好? 机箱电源上写着:额定功率250W,最高350W,这个是什么意思? 能用耕升GTS250 张辽版显卡,PC-IE插槽的吗? 我的机箱电源是350W,高出50W对硬件有损害吗? 机箱是350瓦电源,是不是电脑运行时就是350W 电脑怎么检测系统 怎么在华为手机找回收站我把视频删除了怎么照 急求可以恢复华为手机里面删了的视频 现有java编辑记事本代码里边有错误,请各位大神修改 JTable行选取的事件触发如何实现 java 用JOptionPane.showMessageDialog(null, &quot;获取成功!&quot;); 打开的对话框 如何设置为3秒之后自动关闭 用Java图形用户界面做项目的几个小问题 Exception in thread &quot;main&quot; java.lang.NullPointerException at Login.&lt;init&gt;(Login.java:32) Exception in thread &quot;main&quot; java.lang.NullPointerException at Game1024.(Game1024.java:52 java:26) 跟骨粉碎性骨折工伤能赔偿多少钱 时间进程的介绍 是太阳上的卫星的时间进程慢还是地球上的时间进程慢? 时间进程的加速度相对论 时间进程的双生子悖论 获得了时间片的进程处于什么状态 阅读的时间进程是什么意思 2010世界杯比赛时间进程 为什么飞船上的时间进程比地面上的慢,求详解 进程信息含时间吗 哪些日本漫画,故事情节是有着明显的时间进程的(主人公逐渐长大、变老)? 在时间片轮转调度中,如果一个进程在一个时间片内就已经运行结束,那剩下的时间片时间怎么利用 操作系统中一个时间片对应一个进程吗? win10开机显示你的电脑遇到问题突然卡死了