java—随机数生成器

随机数生成器

通过简单的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();
	}
}

运行截图
运行截图,背景,数字颜色,窗口大小可调节

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术很low的瓜贼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值