Java GUI 简单抽奖演示,可以自行修改功能,Timer类的使用

来源:互联网 发布:2017淘宝发布宝贝教程 编辑:程序博客网 时间:2024/06/11 03:15
import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import javax.swing.Timer;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;/** * JavaGUI 生成 验证码 *  * @author kaifang *  */public class JavaYanZhengMa {public static void main(String[] args) {// 定义验证码字符。去除了O和I等容易混淆的字母(也可写成)final String[] scode = { "A", "B", "C", "D", "E", "F", "G", "H", "G","K", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X","Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j","k", "m", "n", "p", "q", "r", "s", "t", "u", "v", "w", "x","y", "z", "1", "2", "3", "4", "5", "6", "7", "8", "9" };// 创建Random对象final Random rand = new Random();// 创建窗体JFrame对象、放置验证码的JLabel对象、控制开始停止的JButton对象final JFrame jf = new JFrame("验证码");final JLabel jl = new JLabel("点击开始");final JButton jb = new JButton("开始");// 创建可以间隔定时执行的Timer对象,间隔为200毫秒,初始ActionListener为nullfinal Timer times = new Timer(200, null);// 获取JFrame内容面板Container con = jf.getContentPane();// 设置内容面板布局为nullcon.setLayout(null);// 把标签对象添加进内容面板con.add(jl);// 设置标签文字格式jl.setFont(new Font("幼圆", Font.PLAIN, 30));// 设置标签的摆放位置和大小jl.setBounds(70, 30, 126, 36);// 把按钮添加进内容面板con.add(jb);// 设置按钮的摆放位置和大小jb.setBounds(90, 90, 90, 30);// 为按钮注册ActionListener事件jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 判断验证码是否在滚动,是 则停止,否 则开始滚动if (!times.isRunning()) {times.start();} else {times.stop();}// 改变按钮的文字,开始滚动后变为停止,停止后变为开始if ("开始".equals(jb.getText())) {jb.setText("停止");} else {jb.setText("开始");}// 为Timer对象添加ActionListener事件,在事件中产生随机验证码并实现验证码的滚动操作times.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String str = "";for (int i = 0; i < 4; i++) {str += scode[rand.nextInt(scode.length)];}jl.setText(str);}});}});// 设置JFrame大小jf.setSize(260, 200);// 窗体置顶显示jf.setAlwaysOnTop(true);// JFrame不能改变大小jf.setResizable(false);// JFrame居中显示jf.setLocationRelativeTo(null);// 显示JFrame窗体jf.setVisible(true);// 设置JFrame关闭动作jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

0 0
原创粉丝点击