Java写一个“猜”的程序:程序从1到1000的范围内随机选取一个整数让用户猜。
该计划的特点是:
(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 _晴);
}
}
}
}