随机数生成器
通过简单的Runable方法,重载run方法,在窗体中实现设置范围内的数字变换,通过两个按钮来实现不同的操作。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class GetRandomNumber extends JFrame implements Runnable{
public GetRandomNumber(Random random, int a, String s) throws HeadlessException {
super();
this.random = random;
this.a = a;
this.s = s;
}
JPanel mainPanel = new JPanel();
JTextField num = new JTextField();
static JButton start = new JButton("数字变换");
static JButton getOne = new JButton("抽取数字");
static boolean boo = false;
Random random = new Random();
int a;
String s ;
//构造方法
public GetRandomNumber(){
num.setText("1"); // 设立一个初始显示的数字
num.setFont(new Font(null, Font.CENTER_BASELINE, 100));
this.add(num); // 将数字加入到窗体中
mainPanel.add(start);
mainPanel.add(getOne);
this.add(mainPanel, BorderLayout.SOUTH);
this.setBounds(0, 0, 300, 450);
this.setVisible(true);
}
public int num(){
//产生由1-a的随机数
a= random.nextInt(Integer.valueOf(100))+1; // 设置生成随机数的数字范围
return a;
}
public void condition()throws Exception{
/**
* 通俗来讲,equals方法比较的是值是否相同,而==比较的是地址
*/
if(!num.getText().toString().equals(null)){
boo = false;
Thread t1 = new Thread(this);
t1.start();
}
}
//重写的run方法
@Override
public void run() {
while(!boo){
try {
Thread.sleep(100); // 数字变换的刷新时间
s = String.valueOf(num()); // 将生成的随机数转变为字符串:String.valueOf()方法
num.setText(s);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
System.out.println("异常");
}
}
}
public void strat() {
start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
condition();
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
getOne.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
boo = true;
}
});
}
public static void main(String[] args) {
GetRandomNumber test = new GetRandomNumber();
test.strat();
}
}
运行截图