题目要求:
用户首先选择猜数范围,10以内,或者100以内,然后点击“得到一个随机数”按钮,系统生成一个随机整数。用户在文本框中输入猜测的整数,点击确定按钮,有标签显示“猜大了”“猜小了”或者“猜对了”,用户不停地猜测,直到猜对。
代码:
import javax.swing.*;
import javax.swing.text.JTextComponent;
import java.awt.FlowLayout;
import java.awt.event.*;
public class GuessNumber {
public static void main(String[] args) {
Guess guess = new Guess();
guess.setTitle("猜数字");
guess.setBounds(60,100,300,200);
}
}
class Guess extends JFrame implements ActionListener, ItemListener {
JLabel label;
JButton generate, ok;
JTextField number;
JRadioButton limit10, limit100;
int limitnumber, guessnumber = -1;
public Guess(){
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init() {
setLayout(new FlowLayout());
generate = new JButton("得到一个随机数");
generate.addActionListener(this);
label = new JLabel("输入猜测");
limit10 = new JRadioButton("10以内");
limit10.addItemListener(this);
limit100 = new JRadioButton("100以内");
limit100.addItemListener(this);
number = new JTextField(15);
ok = new JButton("确定");
ok.addActionListener(this);
add(generate);
add(label);
ButtonGroup group = new ButtonGroup();
group.add(limit10);
group.add(limit100);
add(limit10);
add(limit100);
add(number);
add(ok);
}
public void itemStateChanged(ItemEvent e) {
if(e.getSource() == limit10)
limitnumber = 10;
else
limitnumber = 100;
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == generate) {
if(limitnumber!=10&&limitnumber!=100)
JOptionPane.showMessageDialog(this, "请先选择随机数范围!","提示对话框",JOptionPane.WARNING_MESSAGE);
try {
guessnumber = (int) (limitnumber*Math.random());
}
catch(Exception x){
JOptionPane.showMessageDialog(this, "请先选择随机数范围!","提示对话框",JOptionPane.WARNING_MESSAGE);
}
}
else if(e.getSource()==ok) {
try {
if(guessnumber==-1)
JOptionPane.showMessageDialog(this, "请先得到一个随机数!","提示对话框",JOptionPane.WARNING_MESSAGE);
if(Integer.valueOf(number.getText())>guessnumber)
label.setText("猜大了!!");
if(Integer.valueOf(number.getText())<guessnumber)
label.setText("猜小了!!");
if(Integer.valueOf(number.getText())==guessnumber)
label.setText("猜对了!!");
}
catch(Exception x) {
JOptionPane.showMessageDialog(this, "输入错误!","提示对话框",JOptionPane.WARNING_MESSAGE);
}
}
}
}
运行效果:
初始页面
猜测结果
用户输入错误处理