- 浏览: 291129 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
狂盗一枝梅:
...
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 2053在实际开发中,我们经常会遇到Excel的合并重复单元格,如 ... -
freemark 工具类
2014-06-12 21:42 1178freemark工具类,根据传入的数据模型,生成对应的模板文 ... -
J2EE 文件下载工具类
2014-06-12 21:20 844一个简单的下载类,在此记录 package com.sgc ... -
POI生成Excel工具类
2014-06-12 21:07 1896废话不说,直接上代码 package com.sgcc. ... -
XML生成实体对象
2014-06-12 21:05 1542在此记录一个xml的工具类,该类可以读取xml文件,存入磁盘 ... -
POI 实现合并单元格以及列自适应宽度
2012-07-27 13:32 70760POI是apache提供的一个读写Excel文档的开源组件 ... -
java 获取外网地址
2012-03-09 11:25 3560在项目中,我们有时需要获取外网的地址,这里指的地址是公网的 ... -
Eclipse 3.6.2 反编译插件jad的配置说明
2012-01-18 11:27 16231.将jad.exe文件放入java的bin目录下,如: ... -
关于java反射的一点应用
2011-10-28 16:32 1307这里记录我在项目中写的一个小应用,用在了数据库的帮助类中,用于 ... -
eclipse中工程右键点击validate后处理方法
2011-02-24 15:16 1986当在eclipse中的工程中点击了validate后,大篇的红 ... -
java设计模式之外观模式
2010-12-17 11:16 1567这一节说说外观模式,这个模式还是很简单的,平时也许我们都用上了 ... -
java设计模式之工厂模式
2010-12-17 10:33 911这一节就说下工厂模式,实例代码的构建环境是学习雷锋同志的优良品 ... -
java设计模式之代理模式
2010-12-16 16:43 1098这一节说说代理模式,我的代码的模拟场景是追MM,感兴趣吧,块看 ... -
java设计模式之策略模式
2010-12-16 16:27 1120这一节主要说明下策略模式的使用。同样,我们模拟计算器的场景。和 ... -
java设计模式之简单工厂模式
2010-12-16 16:17 1240为什么要用设计模式,这个我就不说了,原因很简单,因为它就是“美 ... -
使用pinyin4j获取汉字拼音首字母或全拼
2010-11-19 13:14 15177pinyin4j是一个开源项目,使用它可以很容易的获取汉字的拼 ... -
JMF捕获摄像头数据存入本地磁盘(java 多媒体)
2010-10-10 23:38 6454首先需要说明的是JMF是个什么东西?这个简单问下百度,在百度里 ... -
java连接access数据库,采用相对路径
2010-10-08 14:32 1808二话不说。就是java如何连接access数据库,为什么要写这 ... -
dom4j对XML文件的操作
2010-09-28 12:58 1548XML(Extensible Markup Language) ... -
java中路径的获取方式总结
2010-09-27 18:13 1163得到classpath和当前类的绝对路径的一些方法获得CLAS ...
相关推荐
java swing漂亮界面 超酷 javaswing教程
基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统...
java_swing窗体布局,很实用。上传个大家做个分享。找了好久才找到的。
Java课程设计基于Javaswing的思维导图制作工具.zipJava课程设计基于Javaswing的思维导图制作工具.zipJava课程设计基于Javaswing的思维导图制作工具.zipJava课程设计基于Javaswing的思维导图制作工具.zipJava课程设计...
修改Javaswing窗体图标.pdf
Java Swing飞机大战小游戏.zipJava Swing飞机大战小游戏.zip Java Swing飞机大战小游戏.zipJava Swing飞机大战小游戏.zip Java Swing飞机大战小游戏.zipJava Swing飞机大战小游戏.zip Java Swing飞机大战小游戏.zip...
java Swing 写的定时关机程序 附带源码
java swing扫雷小游戏.zipjava swing扫雷小游戏.zipjava swing扫雷小游戏.zip java swing扫雷小游戏.zipjava swing扫雷小游戏.zipjava swing扫雷小游戏.zip java swing扫雷小游戏.zipjava swing扫雷小游戏.zipjava ...
Java Swing是目前图形界面设计的主流开发工具,《Java Swing图形界面开发与案例详解[1]》从实用的角度出发,通过大量实例全面介绍Java Swing中各种组件的应用及图形界面的开发技术。《Java Swing图形界面开发与案例...
用java swing写的一个简单的汉诺塔窗体小游戏,代码较为简单,有详细的注释,点击即可运行,适合新手学习的小项目
我做这个小工具项目的思路其实在接触Android之前就已经有了,因为Java Swing 界面经常要写菜单代码,这些代码都有很多共同点,显得很繁琐,使得Frame窗体代码过于臃肿。所以就写了这样一个实现用XML配置菜单界面的...
该系统使用Java Swing作为GUI编程工具,MySQL作为数据库,可以方便地进行商品管理、订单管理、库存管理和查询等操作。以下是该系统的简介: 系统概述 本系统主要包括商品管理、订单管理、库存管理和系统管理等功能...
JAVA SWING 自动定时关机技术,此代码属于原创,各位朋友有什么问题可以和我交流。
java Swing多Jpanel仿安卓苹果桌面动态切换滑动效果
简单的小工具界面,可以任意修改为己用,也作为swing入门的学习Sample 详见我的BLOG:http://blog.csdn.net/pirateleo
java swing 教程 精通javaswing
Java Swing编写的贪吃蛇小游戏.zipJava Swing编写的贪吃蛇小游戏.zip Java Swing编写的贪吃蛇小游戏.zipJava Swing编写的贪吃蛇小游戏.zip Java Swing编写的贪吃蛇小游戏.zipJava Swing编写的贪吃蛇小游戏.zip Java ...