Java写一个“猜”的程序:程序从1到1000的范围内随机选取一个整数让用户猜。

附上Java源代码。

该计划的特点是:

(1)文本框中只能输入纯数字;

(2)界面美观;

(3)代码可读,并有适当的注释;

(4)表单一出现就在桌面居中。

导入Java . awt . *;

导入Java . awt . event . *;

导入Java . util . *;

导入javax . swing . *;

公共类GuessNumber {

private static final long serialVersionUID = 1L;

JFrame框架;

JTextField txtNum//文本框

JButton btnStart//按钮

JLabel lblPrompt

JLabel lblMessage

静态int source = 0;

静态随机rand = new Random();

公共来宾人数(){

frame = new JFrame("猜数");

JPanel pnl1,pnl2,pnl3,pnl4

pnl 1 = new JPanel();

pnl1.setLayout(新流程布局(流程布局。左));

pn L2 = new JPanel();

pnl2.setLayout(新流程布局(流程布局。左));

pn L3 = new JPanel();

pnl3.setLayout(新流程布局(流程布局。左));

pnl 4 = new JPanel();

pnl4.setLayout(新流程布局(流程布局。左));

txt num = new JTextField(10);

Bt nstart = new JButton(" start ");

LBL prompt = new JLabel(" & lt;html & gt& ltbody & gt我有一个介于1和1000之间的号码,你能猜出我的号码吗?& ltbr/>;请输入您的第一个猜测。& lt/body & gt;& lt/html >);

LBL message = new JLabel();

pnl 1 . add(LBL prompt);

pn L2 . add(txt num);

pnl 3 . add(LBL message);

pnl 4 . add(BTN start);

frame.setLayout(新GridLayout(4,1));

frame . add(pnl 1);

frame . add(pn L2);

frame . add(pn L3);

frame . add(pnl 4);

txt num . addactionlistener(this . new TextAction());

txt num . addkey listener(this . new key action());

Bt nstart . addactionlistener(this . new button action());

frame.setSize(400,200);

frame . set visible(true);

frame . setlocationrelativeto(null);

frame . setresizable(false);

}

公共静态void main(String[] args) {

new guess number();

while((source = rand . nextint(1000))= = 0);

}

//单击按钮后的事件处理

类ButtonAction实现ActionListener{

@覆盖

public void action performed(action event e){

JButton BTN =(JButton)e . getsource();

if(btn == btnStart){

while((source = rand . nextint(1000))= = 0);

txt num . set editable(true);

}

}

}

//在文本框中按Enter后的事件处理。

类TextAction实现ActionListener{

@覆盖

public void action performed(action event e){

JTextField txt =(JTextField)e . get source();

如果(txt!= txtNum){

返回;

}

int num = integer . parse int(txt num . gettext());

if(num == source){

lblMessage.setText("正确!");

txt num . set editable(false);

txt num . set background(frame . get background());

}

else if(num & gt;来源){

lblMessage.setText("太高");

txt num . set background(color . red);

}

否则{

lblMessage.setText("太低");

txt num . set background(color . blue);

}

}

}

//将文本框限制为只能输入数字。

类KeyAction实现KeyListener{

@覆盖

公共void按键(按键事件e) {

}

@覆盖

public void key released(key event e){

}

@覆盖

公共void键入的(KeyEvent e) {

int k = e . getkey char();

string text =((JTextField)e . getsource())。getText();

如果(!((k & gt47 & amp& ampk & lt58) || (k = = 8 || k = = keyevent。vk _ period)){//只能输入数字。

e.setKeyChar((char)KeyEvent。VK _晴);

}

if(text . length()& gt;4){//限制值的长度。

e.setKeyChar((char)KeyEvent。VK _晴);

}

}

}

}