- 浏览: 294407 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
狂盗一枝梅:
...
POI 实现合并单元格以及列自适应宽度 -
fireinjava:
补充一点:要在写完所有单元格后再调用自适应这个方法。
for ...
POI 实现合并单元格以及列自适应宽度 -
a114d:
还自带广告,哈哈,这个文件现在怎么不能下载,只是在线浏览呢?
使用ant部署eclipse开发的web工程到tomcat -
唐敬原:
非常感谢,很好!!!!!!!!!!
使用pinyin4j获取汉字拼音首字母或全拼 -
心之野海:
我的一个都检测不出来
JMF捕获摄像头数据存入本地磁盘(java 多媒体)
最近以来,由于一直比较闲,所以有时间干一些事情,所以就有了这个采用java swing来完成的这个小工具。由于比较简单。所以将所有的逻辑处理都放在了一个类中,规范性上不是很好。另外这个小工具可以换肤,采用了java内置的5中样式,可以导出成可运行的jar文件使用。ok,废话不说,直接看代码:
package com.yjck.timetask; public class TimeTask extends JFrame implements ActionListener{ private static final long serialVersionUID = 1L; private String path = null; private Map<Integer,String> map = new HashMap<Integer,String>(); private JPanel mainPanel = null; private JPanel btPanel = null; private JRadioButton closeRadio = null; private JRadioButton resetRadio = null; private JRadioButton logoutRadio = null; private JRadioButton planRadio = null; private ButtonGroup btGroup = null; private JLabel titleLabel = null; private JLabel timeLabel = null; private JLabel lookAndFell = null; private JTextField timeField =null; private JTextField planField = null; private JButton browerBt = null; private JButton ConfirmBt = null; private JButton CancelBt = null; private JComboBox laf = null; public TimeTask(){ init(); } /** * 填充下拉列表 * @return Vector<String> */ private Vector<String> initComboBos() { //获得所有java自带的样式 LookAndFeelInfo[] lafInfo = UIManager.getInstalledLookAndFeels(); Vector<String> lafs = new Vector<String>(); for (int i = 0; i < lafInfo.length; i++) { //将样式存入map中,以便在更改样式时能找到。 map.put(i,lafInfo[i].getClassName()); String[] temp = lafInfo[i].getClassName().split("\\."); String str = temp[temp.length-1].replace("LookAndFeel", ""); lafs.addElement(str); } return lafs; } @SuppressWarnings("static-access") private void init(){ this.mainPanel = (JPanel) this.getContentPane(); this.mainPanel.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); this.btGroup = new ButtonGroup(); gbc.gridx = 1; gbc.gridy = 0; this.titleLabel = new JLabel("定时任务小工具"); this.mainPanel.add(this.titleLabel,gbc); gbc.gridx = 0; gbc.gridy = 1; this.closeRadio = new JRadioButton("关机"); this.closeRadio.addActionListener(this); this.closeRadio.setSelected(true); this.btGroup.add(this.closeRadio); this.mainPanel.add(this.closeRadio,gbc); gbc.gridx = 1; gbc.gridy = 1; this.resetRadio = new JRadioButton("重启"); this.resetRadio.addActionListener(this); this.btGroup.add(this.resetRadio); this.mainPanel.add(this.resetRadio,gbc); gbc.gridx = 2; gbc.gridy = 1; this.logoutRadio = new JRadioButton("注销"); this.resetRadio.addActionListener(this); this.btGroup.add(this.logoutRadio); this.mainPanel.add(this.logoutRadio,gbc); gbc.gridx = 0; gbc.gridy = 2; this.planRadio = new JRadioButton("计划任务"); this.planRadio.addActionListener(this); this.btGroup.add(this.planRadio); this.mainPanel.add(this.planRadio,gbc); gbc.gridx = 1; gbc.gridy = 2; this.planField = new JTextField(10); this.planField.setEditable(false); this.mainPanel.add(this.planField,gbc); gbc.gridx = 2; gbc.gridy = 2; this.browerBt = new JButton("浏览"); this.browerBt.setEnabled(false); this.browerBt.addActionListener(this); this.mainPanel.add(this.browerBt,gbc); gbc.gridx = 0; gbc.gridy = 3; this.timeLabel= new JLabel("请输入时间(分钟)"); this.mainPanel.add(this.timeLabel,gbc); gbc.gridx = 1; gbc.gridy = 3; this.timeField= new JTextField(10); this.mainPanel.add(this.timeField,gbc); gbc.gridx = 0; gbc.gridy = 4; this.lookAndFell= new JLabel("请选择样式"); this.mainPanel.add(this.lookAndFell,gbc); gbc.gridx = 1; gbc.gridy = 4; this.laf = new JComboBox(initComboBos()); this.laf.addActionListener(this); this.mainPanel.add(this.laf,gbc); gbc.gridx = 1; gbc.gridy = 5; this.btPanel = new JPanel(); this.ConfirmBt = new JButton("确定"); this.ConfirmBt.addActionListener(this); this.CancelBt = new JButton("取消"); this.CancelBt.addActionListener(this); this.btPanel.add(this.ConfirmBt); this.btPanel.add(this.CancelBt); this.mainPanel.add(this.btPanel,gbc); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); int x = (d.height - 200)/2; int y = (d.width - 350)/2; this.setBounds(x, y, 350, 200); this.setTitle("定时任务"); this.setVisible(true); this.setResizable(false); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); } @Override public void actionPerformed(ActionEvent event) { /************************************** * 判断计划任务是否选中,如果是则浏览按钮可用 * 否则不可用,并将显示程序路径的输入框清空 * ************************************ */ if(this.planRadio.isSelected()){ this.browerBt.setEnabled(true); }else{ this.planField.setText(""); this.browerBt.setEnabled(false); } /************************************** * 更改样式,通过找到选中样式的索引对应在 * map中找到 定义样式的类路径 * ************************************ */ int index = this.laf.getSelectedIndex(); try { UIManager.setLookAndFeel(this.map.get(index)); //更新样式 SwingUtilities.updateComponentTreeUI(this); } catch (ClassNotFoundException e1) { e1.printStackTrace(); } catch (InstantiationException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } catch (UnsupportedLookAndFeelException e1) { e1.printStackTrace(); } //当浏览按钮按下时弹出文件选中对话框。 if(event.getActionCommand().equals("浏览")){ System.out.println("浏览"); JFileChooser chooser = new JFileChooser(); //设置文件的过滤,这里是可执行文件 FileNameExtensionFilter filter = new FileNameExtensionFilter( "可执行文件bat&exe&msi", "bat", "exe","msi"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(null); //返回文件的完整路径 if(returnVal == JFileChooser.APPROVE_OPTION) { path = chooser.getSelectedFile().getPath(); this.planField.setText(path); } } //点击确定按钮执行的操作 if(event.getActionCommand().equals("确定")){ System.out.println("确定"); //获得系统运行环境 Runtime runTime = Runtime.getRuntime(); String time = this.timeField.getText(); //对输入时间进行验证 if(time == null || time.equals("")){ JOptionPane.showMessageDialog(this, "请输入延迟时间"); }else{ if(this.planRadio.isSelected()){ //在选中计划任务后检查是否选中了可执行文件 if(this.path == null || this.path.equals("")){ JOptionPane.showMessageDialog(this, "请选择可执行文件"); }else{ try { Thread.sleep((long) (Double.parseDouble(this.timeField.getText().trim())*60*1000)); runTime.exec(path); } catch (Exception e) { e.printStackTrace(); } } } //关闭计算机 if(this.closeRadio.isSelected()){ try { Thread.sleep((long) (Double.parseDouble(this.timeField.getText().trim())*60*1000)); runTime.exec("shutdown -s"); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //重启计算机 if(this.resetRadio.isSelected()){ try { Thread.sleep((long) (Double.parseDouble(this.timeField.getText().trim())*60*1000)); runTime.exec("shutdown -r"); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //注销计算机 if(this.logoutRadio.isSelected()){ try { Thread.sleep((long) (Double.parseDouble(this.timeField.getText().trim())*60*1000)); runTime.exec("shutdown -l"); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } if(event.getActionCommand().equals("取消")){ System.exit(0); } } /** * @param args * @throws IOException */ public static void main(String[] args){ new TimeTask(); } }
所有的代码都有注释,应该可以看懂的。布局是自己定位的gridbaglayout。其他的应该没啥说的了,只要是将java swing编程的一些特点都记录下来了,以便以后查用!
发表评论
-
poi 合并重复单元格以及冻结行列
2014-10-31 11:49 2094在实际开发中,我们经常会遇到Excel的合并重复单元格,如 ... -
freemark 工具类
2014-06-12 21:42 1240freemark工具类,根据传入的数据模型,生成对应的模板文 ... -
J2EE 文件下载工具类
2014-06-12 21:20 870一个简单的下载类,在此记录 package com.sgc ... -
POI生成Excel工具类
2014-06-12 21:07 1937废话不说,直接上代码 package com.sgcc. ... -
XML生成实体对象
2014-06-12 21:05 1571在此记录一个xml的工具类,该类可以读取xml文件,存入磁盘 ... -
POI 实现合并单元格以及列自适应宽度
2012-07-27 13:32 70840POI是apache提供的一个读写Excel文档的开源组件 ... -
java 获取外网地址
2012-03-09 11:25 3584在项目中,我们有时需要获取外网的地址,这里指的地址是公网的 ... -
Eclipse 3.6.2 反编译插件jad的配置说明
2012-01-18 11:27 16541.将jad.exe文件放入java的bin目录下,如: ... -
关于java反射的一点应用
2011-10-28 16:32 1351这里记录我在项目中写的一个小应用,用在了数据库的帮助类中,用于 ... -
eclipse中工程右键点击validate后处理方法
2011-02-24 15:16 2017当在eclipse中的工程中点击了validate后,大篇的红 ... -
java设计模式之外观模式
2010-12-17 11:16 1608这一节说说外观模式,这个模式还是很简单的,平时也许我们都用上了 ... -
java设计模式之工厂模式
2010-12-17 10:33 911这一节就说下工厂模式,实例代码的构建环境是学习雷锋同志的优良品 ... -
java设计模式之代理模式
2010-12-16 16:43 1125这一节说说代理模式,我的代码的模拟场景是追MM,感兴趣吧,块看 ... -
java设计模式之策略模式
2010-12-16 16:27 1151这一节主要说明下策略模式的使用。同样,我们模拟计算器的场景。和 ... -
java设计模式之简单工厂模式
2010-12-16 16:17 1266为什么要用设计模式,这个我就不说了,原因很简单,因为它就是“美 ... -
使用pinyin4j获取汉字拼音首字母或全拼
2010-11-19 13:14 15254pinyin4j是一个开源项目,使用它可以很容易的获取汉字的拼 ... -
JMF捕获摄像头数据存入本地磁盘(java 多媒体)
2010-10-10 23:38 6504首先需要说明的是JMF是个什么东西?这个简单问下百度,在百度里 ... -
java连接access数据库,采用相对路径
2010-10-08 14:32 1837二话不说。就是java如何连接access数据库,为什么要写这 ... -
dom4j对XML文件的操作
2010-09-28 12:58 1576XML(Extensible Markup Language) ... -
java中路径的获取方式总结
2010-09-27 18:13 1198得到classpath和当前类的绝对路径的一些方法获得CLAS ...
相关推荐
为了实现更酷炫的视觉效果,Swing还支持自定义外观(LookAndFeel),可以改变组件的样式和感觉,使其符合Windows、Mac OS X或者Java的跨平台LookAndFeel。 在“超酷”的方面,开发者可以通过自定义绘图来创建独特的...
这个“Java Swing 小工具界面框架”是一个用于创建简单应用程序界面的示例,适合初学者学习Swing的基本用法。下面将详细阐述Swing的相关知识点。 1. **Swing组件**:Swing提供了多种组件,如按钮(JButton)、...
Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,用于构建桌面应用程序。在这个场景中,我们讨论的是一个使用Java Swing编写的定时关机程序。这个程序允许用户设定一个特定的时间,...
总之,Java Swing不仅是一个强大的工具集,也是开发者实现桌面应用创新设计的关键。通过这个教程,你将能够创建出美观且功能强大的软件界面,提高你的Java GUI编程技能,进一步拓宽你的职业发展道路。
Java Swing 窗体布局是Java图形用户界面(GUI)设计的重要组成部分,它决定了组件在窗口中的排列方式和外观。Swing提供了多种布局管理器,每种都有其独特的特性和用途,下面我们将详细讨论这些布局管理器。 1. **...
Java Swing 是Java GUI(图形用户界面)开发的一个重要库,它是Java AWT(抽象窗口工具包)的扩展,提供了更多丰富的组件和功能。在Java Swing中实现自动定时关机的功能,通常涉及到对操作系统API的调用,以及Swing...
基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统...
综上所述,这个基于Java Swing和BeautyEye的资源管理器项目,不仅展现了Swing的灵活性和可扩展性,还体现了BeautyEye在提升GUI美观度方面的优势,为用户提供了一个功能完备且视觉愉悦的文件管理和压缩工具。
Java Swing飞机大战小游戏Java Swing飞机大战小游戏Java Swing飞机大战小游戏Java Swing飞机大战小游戏Java Swing飞机大战小游戏Java Swing飞机大战小游戏Java Swing飞机大战小游戏Java Swing飞机大战小游戏Java ...
Java课程设计基于Javaswing的思维导图制作工具.zipJava课程设计基于Javaswing的思维导图制作工具.zipJava课程设计基于Javaswing的思维导图制作工具.zipJava课程设计基于Javaswing的思维导图制作工具.zipJava课程设计...
在开发过程中,Java Swing的组件可以通过调整各种属性来改变其外观,例如颜色、字体、边框等,从而实现漂亮的界面设计。同时,Swing还支持自定义布局管理器,这使得组件在不同尺寸的屏幕上都能够适应性地排列和展示...
在这个Java Swing实现的汉诺塔窗体小游戏中,开发者为初学者提供了一个直观的学习平台,通过代码来理解递归和问题解决策略。 首先,`Hanoi11.java`是这个游戏的主要源代码文件。这个文件中,我们可能看到以下关键...
基于Java,Swing的2048小游戏.zip基于Java,Swing的2048小游戏.zip基于Java,Swing的2048小游戏.zip基于Java,Swing的2048小游戏.zip基于Java,Swing的2048小游戏.zip基于Java,Swing的2048小游戏.zip基于Java,...
本文将深入探讨一个基于Java Swing和MySQL的水费信息管理系统,它是一款实用的窗体应用程序(GUI),能够有效地帮助我们管理和追踪水费信息。 首先,Java Swing是Java平台上用于构建桌面应用程序的图形用户界面...
压缩包中的子文件“Swing样式大全(全56种经典)”可能包含了超过原本描述中提到的50种皮肤,这56种经典样式可能是各种流行和独特设计的组合,涵盖了不同的主题和风格,如扁平化、拟物化、复古风等。开发者可以根据...
Java Swing 是Java图形用户界面(GUI)工具包的一部分,它允许开发者创建丰富的桌面应用程序。在“Java Swing画随机圆”这个题目中,学生被要求利用Java Swing库来创建一个程序,该程序能够在屏幕上动态地绘制出大小...
Java Swing 是Java编程语言中用于构建图形用户界面(GUI)的一个工具包,它是Java Foundation Classes (JFC)的一部分。这个“java swing小程序”压缩包很可能包含了一些示例代码,可以帮助初学者或者开发者更好地...
在Swing这一Java的图形用户界面(GUI)工具包中,虽然提供了基本的组件和布局管理器,但默认的UI设计往往显得较为朴素。为了使Swing应用看起来更加现代化和吸引人,我们可以引入第三方库,如本案例中的"substance....