「Javawindowb」javawindowbuilder购物系统
本篇文章给大家谈谈Javawindowb,以及javawindowbuilder购物系统对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、设计一个Windows下的java应用程序(非Applet),它是一个窗口,窗口中有一个按钮和一个文本框,点击按钮,
- 2、如何注册java程序为windows服务
- 3、java遍历window所有目录问题
- 4、如何生成在window平台通用的java程序?
- 5、Java、Window、Unix的区别
- 6、java编写windows系统的日历和时钟
设计一个Windows下的java应用程序(非Applet),它是一个窗口,窗口中有一个按钮和一个文本框,点击按钮,
使用javaswing JFrame设计窗口 + 布局就可实现,建议在例子的基础上多看API,如下例(添加了详细注释):
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class JFrameTest extends JFrame implements ActionListener {
private static final long serialVersionUID = -2829899643559384548L;
private JButton b1 = null;//按钮
private JTextArea jta = null;//文本
public JFrameTest() {
Container c = this.getContentPane();
c.setLayout(new BorderLayout());//设置布局方式,BorderLayout东西南北中布局
b1 = new JButton("点击");
b1.addActionListener(this);//为按钮添加监听
c.add(b1, BorderLayout.SOUTH);//添加按钮到c容器中,并分配在容器南(下)方
jta = new JTextArea();
c.add(jta, BorderLayout.CENTER);//添加文本区到c容器中,并分配在居中位置
this.setTitle("按钮事件");//设置窗口标题
this.setSize(300, 300);//设置窗体大小
this.setVisible(true);//窗体设置为显示
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗体
//常用的一种关闭窗体的方法
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
//使用判断按钮名称的方法触发事件
if("点击".equals(e.getActionCommand())) {
jta.setText("按钮被点击了!");
}
//也可以获取对象名实现判断
// if(e.getSource() == b1) {
// jta.setText("按钮使用getSource方法被点击了!");
// }
}
public static void main(String[] args) {
new JFrameTest();
}
}
如何注册java程序为windows服务
这里介绍下如何利用javaService 软件把java 程序注册为windows 服务。
一、 利用javaService 注册java 程序为windows 服务
[1] 下载javaService
访问网址 下载windows 版本的javaService 文件,我下载的是JavaService-2.0.10.rar ,目前最新的版本就是“2.0.10 ”。
[2] 安装javaService
解压我们下载下来的javaServices 到一个目录,我是解压到目录“D:/software/JavaService-2.0.10 ”下(解压到任何目录都可以,最好别解压到中文目录,省的出现问题 )
[3] 编写定时关机代码,见第二章的定时关机代码
1) 具体代码参加第二章,类的名字为:
com.test.timer.TimerShutDownWindows
2) 把编写后的java 文件导出为class 的形式,把导出的类放到目录“D:/software/JavaService-2.0.10/classes/com/test/timer ”下。也就是把导出的com 包放到
“D:/software/JavaService-2.0.10/classes” 目录下。
[4] 注册java 程序为windows 服务
进入“D:/software/JavaService-2.0.10 “目录,执行如下命令:
JavaService.exe -install MyShutDownService "%JAVA_HOME%"/jre/bin/server/jvm.dll -Djava.class.path="%JAVA_HOME%"/lib/tools.jar;D:/software/JavaService-2.0.10/classes -start com.test.timer.TimerShutDownWindows
其中“-install “后面的参数为服务的名称,“-start ”参数后边是要启动的类名,“Djava.class.path ”后面参数中的
“D:/software/JavaService-2.0.10/classe ”地址是我的“TimerShutDownWindows ”类存放的路径,实际应用中修改为自己的classPath 即可。
这里需要注意几点:
1) “%JAVA_HOME% ”jdk 目录,如果没有配置jdk 目录,则替换为jdk 的实际绝对地址。
2) -Djava.class.path 是必须的,因为服务启动的时候无法访问系统的CLASSPATH 变量,所以必须在这里声明;如果jar 比较多,为避免写的命令过长,我们可以使用“-Djava.ext.dirs=jars 所在目录”参数。
3) 服务添加之后,可以在命令行中敲入“services.msc ”命令来查看所有服务,并可以对服务的启动类型(自动启动还是手动启动等)进行修改。
[5] 测试
1) 启动服务
当我们注册完服务后,我们可以通过命令“net start MyShutDownService ”来启动该服务,服务启动后会在D 盘根目录生成my_shutdown.log 日志文件。
2) 关闭服务
如果我们要关闭服务,可以通过命令“net stop MyShutDownService ”来关闭该服务。
3) 删除服务
当我们想删除该服务时,可以使用命令“sc delete MyShutDownService ”来删除该服务。
二、 定时关机代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
package com.test.timer;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class TimerShutDownWindows {
/* 检测是否需要关机的时间间隔 */
private static long m_nDetectInterval = 5000;
/* 记录上次检测的时间,以毫秒为单位 */
private static long m_lLastMilliSeconds = 0;
/* 可以使用电脑的最小小时 */
private static int m_nUsePCMinHour = 17;
/* 可以使用电脑的最大小时 */
private static int m_nUseComputerMaxHour = 23;
/* 如果分钟超过这个时间,则关机计算机 */
private static int m_nMinutes = 25;
/* 记录日志的文件的保存位置 */
private static String m_sLogFile = "D:" + File.separator
+ "my_shutdown.log";
/* 记录当前系统是否已经启动自动关闭程序 */
private static boolean bHasShutDownPC = false;
/**
* @param args
*/
public static void main(String[] args) {
// 1. 单独开启一个线程去检测
Thread aThread = new Thread(new TimerDetector());
aThread.start();
}
/**
* 定义内部类
*
* @author Administrator
*
*/
static class TimerDetector implements Runnable {
/*
* (non-Javadoc)
*
* @see java.lang.Runnable#run()
*/
public void run() {
// 1. 获取日志文件
PrintWriter out = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
out = new PrintWriter(new FileWriter(m_sLogFile, true), true);
} catch (IOException e1) {
out = null;
e1.printStackTrace();
}
// 2. 记录服务启动时间
appendLog(out, " 服务启动时间:" + df.format(new Date()));
while (true) {
// 1. 判断当前系统时间是否被修改过
boolean bShoudShutDownPC = validateShoudShutDownPC(out);
if (bShoudShutDownPC) {
// 验证没通过,强制关机
exectueShutDown(out);
} else {
bHasShutDownPC = false;
}
// 2. 当前线程休眠下
try {
Thread.sleep(m_nDetectInterval);
} catch (InterruptedException e) {
appendLog(out, e.getMessage());
}
}
}
/**
* 验证当前时间是否是需要关机的时间
*
* @return
*/
private boolean validateShoudShutDownPC(PrintWriter _out) {
// 1. 判断是否修改了系统时间
boolean bHasModifySystemTime = detectModifySytemTime(_out);
appendLog(_out, "bHasModifySystemTime :" + bHasModifySystemTime);
if (bHasModifySystemTime) {
return bHasModifySystemTime;
}
// 2. 没有修改系统时间,则判断当前时间是否超过了指定的时间
boolean bShoudSleep = nowIsSleepTime();
appendLog(_out, "bShoudSleep :" + bShoudSleep);
if (bShoudSleep) {
return bShoudSleep;
}
return false;
}
/**
* 判断当前时间是否应该休息的时间
*
* @return
*/
private boolean nowIsSleepTime() {
// 1. 获取当前小时和分钟
Calendar aCalendar = Calendar.getInstance();
int nHour = aCalendar.get(Calendar.HOUR_OF_DAY);
int nMinute = aCalendar.get(Calendar.MINUTE);
// 2. 判断当前小时是否在可以使用PC 的时间内, 最大小时为23
if (nHour m_nUsePCMinHour) {
return true;
}
// 23 点需要单独判断,超过23 点30 就应该休息
if ((nHour = m_nUseComputerMaxHour) (nMinute = m_nMinutes)) {
return true;
}
// 3. 非休息时间
return false;
}
/**
* 判断是否有人修改了系统时间,如果有人修改了系统时间返回true ,
* 否则返回false
*
* @return
*/
private boolean detectModifySytemTime(PrintWriter _out) {
// 1. 第一次检测系统时间
if (m_lLastMilliSeconds == 0) {
m_lLastMilliSeconds = System.currentTimeMillis();
return false;
}
// 2. 检测两次时间的差值
long lInteral = System.currentTimeMillis() - m_lLastMilliSeconds;
lInteral = Math.abs(lInteral);
// 3. 判断两次的时间间隔, 两次结果不一定完全等于 m_nDetectInterval ,允许误差为1 分钟
long lMaxInterval = m_nDetectInterval + 60 * 1000;
appendLog(_out, "lInteral :::" + lInteral);
appendLog(_out, "lMaxInterval :::" + lMaxInterval);
if (lInteral lMaxInterval) {
// 有人修改了系统时间,强制关机
return true;
}
// 4. 只有没人修改时间才记录上次检测时间
m_lLastMilliSeconds = System.currentTimeMillis();
return false;
}
/**
* 在指定的流中写入日志信息
*
* @param _outWriter
* @param _sAppendContent
*/
private void appendLog(PrintWriter _outWriter, String _sAppendContent) {
if (_outWriter == null) {
return;
}
_outWriter.println(_sAppendContent);
}
/**
* 执行关机命令
*/
private void exectueShutDown(PrintWriter _out) {
if (bHasShutDownPC) {
SimpleDateFormat df = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
appendLog(_out, " 系统即将关闭, 当前时间:" + df.format(new Date()));
return;
}
appendLog(_out, " 有人修改了系统时间,系统强制关机!");
// 关机
try {
Runtime.getRuntime().exec(
"shutdown -s -t 120 -c /" 很晚了,该睡觉了,2 分钟后关闭计算机。/"");
} catch (IOException e) {
appendLog(_out, e.getMessage());
}
bHasShutDownPC = true;
}
}
}
java遍历window所有目录问题
这个是权限问题哦,WIN7不允许访问。
对这个目录(C:\Documents and Settings)使用listFiles()会返回null。
在遍历之前判断其不等于null就好了,我编写了一个,不管几层目录都可以哦。
import java.io.File;
public class A1 {
public static void main(String[] args) {
File roots[] = File.listRoots();
for (File f : roots) {
check(f);
}
}
public static void check(File f) {
if (f != null) {
System.out.println(f.toString());
if (f.isDirectory()) {
File[] fs = f.listFiles();
if (fs != null) {
for (File f2 : fs) {
check(f2);
}
}
}
}
}
}
如何生成在window平台通用的java程序?
关于两种将Java程序转化为.exe程序工具的使用及比较
这几天在逛blog的时候看到有关于java生成exe的工具的介绍。想到iterm上次提到的需要exe的需求。于是趁着上午比较犯困的时间,试用了两款,并对其作用作了稍稍的比较。并将结果备录在案。
一 JSmooth
1. 出品
Jsmooth,Sourceforge.net
2. 类型
free
3. 下载
4. 步骤
a) 利用Eclipse将所需要的主类打成可独立运行的jar包,注意添加manifest属性和MainClass。
b) 新建一个Jsmooth工程
c) 在sketlon中选择“Console“ 或者 “Windowed“
d) 在Executable中的配置:
i. Executable Binary:填写目的输出源的名称。如test.exe.
ii. Executable Icon :选择一个好看点的图标
iii. Current Driectory :.(表示当前工程目录,当然也可行换成别的,As you wish.)
e) 在Application中的配置:
i. Classpath:选中我们所生成的jar包以及运行该jar文件所需要的类库
ii. Main-Class:选中我们所需要运行的主类。
iii. 可选项Use an embedded jar:运行该exe时可能需要到的类库(这里只能有一个类库)。
f) 在JVM Selection中的配置:
i. Minimum JVM Version:写一个需要运行该程序所需的最低的就JVM的版本,比如1.4
g) Compile:OK,编译成功后,在你的输出目录上就会有一个崭新的exe程序了。Just enjoy it.
二 exe4J
1. 出品
ej-technologies
2. 类型
Shared software,needs license
3. 下载
4. 步骤
a) 利用Eclipse将所需要的主类打成可独立运行的jar包,注意添加manifest属性和MainClass。
b) 新建一个exe4j工程
c) 选择“JAR in exe“ mode
d) 在Configure application中的配置:
i. Short name:随便写.
ii. Ourput Driectory :选择输出路径。
e) 在Configure Executable中的配置:
i. Executable type: 有三个选项,图形,控制台.或服务。从简单点开始吧,这里我们选console
ii. Executable name:填写目的输出源的名称。如test.exe
iii. Icon file:exe图标文件,但必须是.ico文件
f) 在Configure Java invocation中的配置:
i. Classpath:选中我们所生成的jar包以及运行该jar文件所需要的类库
ii. Main-Class:选中我们所需要运行的主类。
iii. Arguments(可选项):输入参数。我们这里暂不需要。
g) 在Configure JRE中的配置:
i. Minimum Version:写一个需要运行该程序所需的最低的就JVM的版本,比如1.4
h) 一直next,对于所遇到的步骤选项都默认,直到finish:OK。编译成功后,在你的输出目录上就会有一个崭新的exe程序了。Just enjoy it.
三 总结和比较
由Java生成exe的工具还有很多,上面两种是我个人觉得用起来觉得比较方便的。两者的原理基本相同,但具体用起来还是有一点点不太一样的:
1. 相同点
a) 最大的相同点当然是他们原理是互通的。都是通过将可运行的java程序打成可执行的jar包。再作转换。
b) 所生成的exe可执行程序,需要在装有比minimum version高的JVM环境下运行。
2. 不同点
a) 生成exe的时候,如果想要exe只需要pure JVM的环境(不需要第三方的类库)就可以运行的话。在JSmooth需要将所有的用到的第三方类库压缩成一个jar包(因为它有个embeded jar的选项),这就比较麻烦,因为当需要的jar多于一个时候,就需要将这些jar包先用jar –xvf 解压缩,在用jar –cvf重新制作新的jar文件,再放到embeded jar选项中去;而exe4J则会把classppath中所用到的jar包也会编译到exe中去。
b) JSmooth是免费的;而exe4J是共享软件,需要注册,否则在执行exe的时候会弹出很惹人烦的提示框。
c) ico文件的选择:exe4J要求严格的ico文件,而JSmooth则可以兼容jpg等其他各式的图片。
Java、Window、Unix的区别
java是语言,有两个分支,j2ee是用于网页系统也就是b/s程序设计的,优点是安全性高,而且开源,多用于政府内部系统和大部分的银行系统。
unix是一套开源的操作系统内核,一般用于服务器上,家庭pc上目前还是windows的天下。
windows还要介绍?windows不会用估计楼主你也上不了百度知道吧
java编写windows系统的日历和时钟
import java.lang.Carlendar;
import java.util.Date;
class Mytime extends Thread{ //继承 Thread 类,实现多线程
Thread thread = new Thread();
thread.Start();
public void fun()
{
while(true)
{
Date date = new Date();
thread.Sleep(1000); //设置一秒钟提取一次
txtTime.setText(date) //将时间显示到文本框里,还要提取一下,你自己搞了
}
}
}
日历不写了,
这是动态时间,
你有电脑就要自己调试一下,
我敢肯定是这样做的,
我现在忘记了一些,
这样不行你把thread.Start();
放到while里面去,
但是你改一改绝对会成功,
因为我做了
祝你成功
关于Javawindowb和javawindowbuilder购物系统的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-25,除非注明,否则均为
原创文章,转载请注明出处。