import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Drawing extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
// 实例化一个文本域
JTextField tf = new JTextField();
// 设置两个按钮
JButton b1 = new JButton("开始");
JButton b2 = new JButton("停止");
boolean isGo = false;
public Drawing() {
b1.setActionCommand("start");// 在开始按钮上设置一个动作监听 start
JPanel p = new JPanel();// 创建一个面板容器,用于放置组件
// 将两个按钮添加到可视化容器上面,用add方法
p.add(b1);
p.add(b2);
// 在两个按钮上增加监听的属性,自动调用下面的监听处理方法actionPerformed(ActionEvent
// e),如果要代码有更好的可读性,可用内部类实现动作
// 监听处理。
b1.addActionListener(this);
b2.addActionListener(this);
// 将停止按钮设置为不可编辑(即不可按的状态)
b2.setEnabled(false);
// 将上面的文本域放在面板的北方,也就是上面(上北下南左西右东)
this.getContentPane().add(tf, "North");
// 将可视化容器pannel放在南边,也就是下面
this.getContentPane().add(p, "South");
// 设置用户在此窗体上发起"close"时默认执行的操作,参数EXIT_ON_CLOSE是使用
// System exit方法退出应用程序。仅在应用程序中使用
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 200);// 设置面板大小,宽和高
this.setLocation(300, 300);// 设置面板刚开始的出现的位置
// 用指定名称创建一个新的定制光标对象,参数表示手状光标类型
Cursor cu = new Cursor(Cursor.HAND_CURSOR);
// 为指定的光标设置光标图像,即设置光标图像为上面所创建的手状光标类型
this.setCursor(cu);
// 将面板可视化设置为true,即可视,如果为false,即程序运行时面板会隐藏
this.setVisible(true);
// 设置面板的标题为欢迎
tf.setText("welcome to this program! ");
this.go();// 调用go方法
}
public void go() {
// 这里是死循环,也就是说用户不点击停止按钮的话他一直循环出现随机数,直到用户点
// 击停止按钮循环才能推出,具体流程在actionPerformed方法中控制。
while (true) {
// 上面所定义的isGo的初始值为false,所以程序第一次到此会跳过
if (isGo == true) {
String s = "";
// 产生7个随机数
for (int j = 1; j <= 7; j++) {
// 每个随机数产生方式,这里定义灵活,可以自由定义随机数产生的方式
int i = (int) (Math.random() * 36) + 1;
// 如果产生的随机数小于10的话做处理:这里就牵扯到一个重要的概念,简单叙述一下:
if (i < 10) {
s = s + " 0" + i;
/*
* 当一个字符串与一个整型数项相加的意思是连接,上面的s = s + " 0" +
* i的意思是字符串s链接0再连接整型i值,而不会导致0和整型的i相加,
* 产生的效果为s0i,由于s为空字符串(上面定义过的),所以当i小于零时,在个位数前面加上0,比如产生的随机数i为7的话,显示效果为
* 07.
*/
} else {
// 如果产生的随机数比10打的话,那么加上空格显示,即数字和数字之间有个空格
s = s + " " + i;
}
// 以上循环循环七次,以保证能出现7个随机数
}
// 将产生的随机数全部显示在文本域上,用文本域对象tf调用它的
//设置文本的方法setText(String)实现。
tf.setText(s);
}
try {
// 以下为线程延迟
Thread.sleep(10);
} catch (java.lang.InterruptedException e) {
e.printStackTrace();
}
}
}
// 以下是上面设置的事件监听的具体处理办法,即监听时间处理方法,自动调用
public void actionPerformed(ActionEvent e) {// 传入一个动作事件的参数e
// 设置字符串s来存储获得动作监听,上面的start
String s = e.getActionCommand();
/*
* 以下这个条件语句块的作用为:用户点击开始后(捕获start,用方法getActionCommand()),将命令触发设置为true,从而执行上面的go方法中的循环体(因为循环体中要求isGo参数为true,而初始为false)。
* 执行循环快产生随机数,并将开始按钮不可编辑化,而用户只可以使用停止按钮去停止。如果用户按下停止时,也就是没有传入参数“start”的时候,
* 执行else语句块中的语句,isGo设置为false,将不执行上面go中的循环语句块,从而停止产生随机数,并显示,并且把开始按钮设置为可用,而把
* 停止按钮设置为不可用,等待用户按下开始再去开始新一轮循环产生随机数。
*/
// 如果捕获到start,也就是用户触发了动作监听器,那么下面处理
if (s.equals("start")) {
isGo = true; // 设置isGo为true
b1.setEnabled(false); // 将开始按钮设置为不可用
b2.setEnabled(true); // 将停止按钮设置为可用
} else {
isGo = false; // 将isGo设置为false,isGo为循环标志位
b2.setEnabled(false); // 设置停止按钮为不可用(注意看是b2,b2是停止按钮)
b1.setEnabled(true); // 设置开始按钮为可用
}
}
public static void main(String[] args) {
new Drawing();// 产生类的实例,执行方法
}
}
发表评论
-
MyEclipse6.5配置Tomcat7.0
2014-11-26 10:26 850window>>Preferences>&g ... -
JSP 转换 mht java 代码
2013-11-22 10:31 1063import java.io.BufferedInputS ... -
JAVA实现FTP上传下载
2013-09-06 10:31 899import java.io.DataIn ... -
java的KVM在arm上的应用
2013-03-21 09:26 968http://wenku.baidu.com/view/162 ... -
JAVA在ARM的应用
2013-03-21 09:18 5771J2ME CDC(Connected Device Confi ... -
JAVA桌面截图
2013-03-20 15:07 809Robot robot = new Robo ... -
引用他人代码去掉前面行数
2013-03-19 11:01 896import java.io.*; public clas ... -
JAVA调用DLL文件
2012-11-25 16:02 10041 创建 TestDll.java public cla ... -
用java的反射清空对象属性的值
2012-10-25 16:09 8025@SuppressWarnings("unche ... -
用反射清空对象属性的的值
2012-10-25 16:06 0@SuppressWarnings("unche ... -
JMS实例,包括点对点和主题订阅
2012-07-11 10:58 3020三个Java文件: JMSTest.java ... -
Jmail收发邮件
2012-07-11 09:32 1122Jmail 接收邮件: import javax.mai ... -
MyEclipse6.0反编译插件jadclipse安装
2012-05-16 11:54 1063插件下载 反编译工具jad,地址:http://www.var ... -
MyEclipse6.0反编译插件jadclipse安装
2012-05-16 11:51 0插件下载 反编译工具ja ... -
把第一个对象中不为空的数据复制到第二个对象中
2012-04-09 10:31 1076/*** *实现两个实例对象之间的对拷, * ... -
velocity导出word模板
2012-02-29 13:11 1532public class VelocityExample { ... -
Jacob操作word
2012-02-29 13:02 1373package test; import com.jacob ... -
EJB3学习资料
2011-03-31 17:28 875http://wenku.baidu.com/view/6e2 ... -
Java和C#相互调用
2011-03-31 17:23 897http://developer.51cto.com/art/ ... -
java操作注册表方法
2011-02-23 16:57 860http://www.iteye.com/topic/8229 ...
相关推荐
### SQL随机抽取数据知识点 #### 一、SQL Server随机抽取数据方法 在SQL Server中,如果需要从一张表中随机抽取指定数量的数据记录,可以利用`NEWID()`函数结合`ORDER BY`子句来实现这一功能。下面将详细介绍这一...
在本文中,我们将深入探讨如何使用Ajax从数据库中随机读取5条数据并在网页上动态刷新。Ajax(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下更新部分网页的技术,它通过JavaScript与服务器...
在IT行业中,随机取数是一项常见的任务,广泛应用于各种应用场景,如模拟实验、数据分析、游戏逻辑、加密算法以及本例中的随机编码和抽奖系统。本文将深入探讨如何实现随机取数,以及它在构建随机编码和抽奖系统中的...
在本资源中,我们关注的是一个特定的功能模块——随机取姓名模块,它主要用于生成随机的中文姓名。这个模块是易语言编程环境下的一个源码示例,可以帮助开发者了解如何在易语言中实现汉字与拼音的结合,以及利用笔画...
在MySQL中,获取随机数据是常见的需求,尤其是在测试、数据分析或者构建某些特定功能时。本文将探讨两种常用的方法,以及如何根据数据量和需求选择合适的方法。 方法一:使用`ORDER BY RAND()`函数 `ORDER BY RAND...
在第二个代码段中,展示了如何从一个对象中随机取数据。首先,将对象的所有键(key)提取到数组`arr`中,然后调用`myRand`函数从中随机抽取指定数量的数据项。由于对象的属性名是唯一的,直接抽取键即可确保不重复。...
传说用这个语句管用:select top 5 * from tablename order by newid() 我放到sql的查询分析器里去执行果然管用,随机抽取5条信息,不停的换,结果我应用到程序里的时候就不管用了,总是那几条,于是对这个东西进行...
在给定的“易语言随机取姓名模块”中,我们可以深入探讨几个关键知识点,包括模块化编程、随机数生成以及字符串处理。 1. **模块化编程**: 在软件开发中,模块化编程是一种重要的组织代码的方式。它将复杂的问题...
通过组合这些基本的随机生成方法,可以构建出复杂的功能,例如生成随机密码、模拟数据等。在实际应用中,可能还需要考虑随机数的种子设置,以确保每次运行的结果不同或者重复。易语言中的“设置随机数种子”命令可以...
数据收集方面,每50步取一次样本点,总共收集10000个样本点。这样可以获取到随机行走过程的平均特性,减少短期波动的影响。在绘图时,由于绘图软件的限制,如Graph,选择了200个样本点进行展示,以避免因过多数据...
根据给定的信息,本文将详细探讨“时间测量中的随机误差数据”,主要聚焦于理解随机误差的概念、如何识别和处理这些误差以及它们对时间测量精度的影响。 ### 一、随机误差的基本概念 在科学实验和工程实践中,测量...
"易语言快速取随机字符源码"是指使用易语言编写的用于生成随机字符的代码片段。在计算机编程中,随机字符生成常用于创建密码、验证码、模拟数据等多种场景。 在易语言中,生成随机字符通常涉及以下几个核心知识点:...
在易语言中,编写源码进行随机取大小写字母的功能,是常见的字符串处理和随机数应用的一个实例。这个源码可以帮助我们理解易语言中的字符串操作和随机数生成的基本原理。 在易语言中,我们可以利用“随机数”函数...
今天偶然想起来一个坑爹数据,如:PHP取百万条数据中随机20条记录,当时就用的算法。 1.先统计统计数据库多少条记录(这个做个数据缓存,如1小时重新统计一次), 2.根据总条数,随机1次,1次性取出20条记录(当然这...
然而,需要注意的是,随机抽样的有效性取决于样本是否真正代表总体,因此在抽样前必须对总体结构有充分理解。 数据挖掘中的随机抽样还包括了有放回抽样和无放回抽样两种方式。有放回抽样意味着每次抽取后将个体放回...
在易语言中,"取随机字符"功能是用于生成指定长度的随机字符串,常用于密码生成、数据填充或者加密等领域。这个压缩包文件“易语言取随机字符源码.7z”包含的就是关于这一功能的源代码,可以帮助我们理解易语言如何...
这个压缩包“易语言源码易语言快速取随机字符源码.rar”显然是包含了一段使用易语言编写的代码,用于快速生成随机字符。下面我们将深入探讨易语言以及如何在其中生成随机字符。 易语言的核心设计理念是“易学、易用...
在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你会发现,直接使用是错误的。下面我来介绍随机取数据一些优化方法。 SELECT * FROM...
在易语言中,“取随机汉字”是一个常见的功能,用于生成随机的汉字字符,常用于各种需要随机数据的场景,如测试、模拟用户输入等。 “取随机汉字源码”指的是实现这一功能的易语言程序代码。编写这样的源码,你需要...