***用到的知识事件和组件,其他的上面showmessageDialog完全可以不用
我们玩就可以用system.out.println()就可以了,当然了,好看~~~~注释写的很详细,大家可以仔细看看~
如果有不对的,麻烦联系我改下,谢谢!***
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class A extends JFrame implements ActionListener {
JButton one = new JButton("得到一个随机数");
JButton two = new JButton("确定");
JTextField field = new JTextField(10);
JLabel label = new JLabel("未初始化随机数");
int sjs = 0;// 初始化产生的随机数
int guess = 0;// 初始化我们猜的数
String regx = "[0-9]+";// 正则表达式,0-9
public A() {
setBounds(300, 300, 300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
setTitle("java");
add(one);
add(label);
add(field);
add(two);
one.addActionListener(this);// 初始化窗口并添加监视器
two.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent a) {
// 判断我们按下了按钮one,还是按钮two
if (a.getSource() == one)
{// 按下按钮one(就是初始化随机数)
sjs = new Random().nextInt(100);// 产生随机数
label.setText("请猜数!");
}
else if (a.getSource() == two) {// 按下按钮two(就是确定猜数)
if (field.getText().matches(regx))
{ // 如果符合正则表达式
guess = Integer.parseInt(field.getText());// 获取文本框的值
System.out.println(guess);
if (guess > sjs) {
JOptionPane.showMessageDialog(this, "大了", "错误提示", JOptionPane.WARNING_MESSAGE);
} else if (guess < sjs) {
JOptionPane.showMessageDialog(this, "小了", "错误提示", JOptionPane.WARNING_MESSAGE);
} else if (guess == sjs) {
JOptionPane.showMessageDialog(this, "恭喜你", "正确提示", JOptionPane.WARNING_MESSAGE);
}
}
else
{ // 不符合正则表达式
JOptionPane.showMessageDialog(this, "请重新输入合法的数字!", "错误提示", JOptionPane.WARNING_MESSAGE);
}
}
}
public static void main(String[] args) {// 创建窗体
A bb = new A();
}
}