- 浏览: 1616800 次
- 性别:
- 来自: 长春
文章分类
- 全部博客 (309)
- ext (19)
- web (13)
- PHP (19)
- 互联网新闻 (3)
- oracle (3)
- Mootools (1)
- FLEX (3)
- 人在职场 (2)
- hibernate (24)
- spring2 (1)
- J2SE (24)
- WEB_UI (14)
- 其它 (11)
- Log4J (1)
- iText (10)
- SQL (11)
- 设计模式 (3)
- lucene (6)
- 开源项目 (2)
- javascript (20)
- 软件&破解补丁 (48)
- Quartz (2)
- 解决方案 (1)
- 工作存档 (2)
- JAVA对文件操作 (2)
- C&C#&VC (1)
- struts2 (3)
- 版本控制 (2)
- 软考基础 (23)
- JBPM (2)
- velocity (4)
- javamail (3)
- HttpClient (9)
- 虚拟化技术 (2)
- 报表 (3)
- ibatis (5)
- Spring (4)
- 信用卡 (0)
- 芒果钱包 (0)
- 养卡 (0)
最新评论
-
a601962168:
...
通过JAVA与串口(RS232)通信实例 -
olive009:
...
Adobe Acrobat 9 Pro & Pro Extended 中文版/英文版 下载及破解补丁 -
overshit:
api更新了,一加filter就Callback filter ...
深入浅出CGlib-打造无入侵的类代理 -
u010778233:
写得很不错,已经用起来了,谢谢
将jdbc结果集转换成对象列表 -
924060929:
我想找就是要这个功能!!!!!!!!
velocity基础教程--2自定义ResourceLoader实现字符模板
由于jdk6之前并不支持
所以使用swt
jdk6可以支持了 建议使用jdk6的版本 因为它才是真正的跨平台
swt
jdk6
所以使用swt
jdk6可以支持了 建议使用jdk6的版本 因为它才是真正的跨平台
swt
import org.eclipse.swt.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.*; public class TrayBySwt { public static void main(String[] args) { Display display = new Display(); final Shell shell = new Shell(display); shell.setText("系统托盘BySwt"); shell.setLayout (new FillLayout()); Button button = new Button(shell, SWT.PUSH); button.setText("隐藏窗口显示托盘图标"); ImageData imageData = new ImageData("E:\\workspace\\myeclipse66\\ra\\Tray\\src\\16.gif"); Image image = new Image(display, imageData); //取得系统托盘 final Tray tray = display.getSystemTray(); if (tray == null) { System.out.println("当前操作系统不支持托盘图标"); } else { final TrayItem item = new TrayItem(tray, SWT.NONE); item.setToolTipText("我是托盘图标"); item.addListener (SWT.Show, new Listener () { public void handleEvent (Event event) { System.out.println("show"); } }); item.addListener (SWT.Hide, new Listener () { public void handleEvent (Event event) { System.out.println("hide"); } }); item.addListener (SWT.Selection, new Listener () { public void handleEvent (Event event) { System.out.println("selection"); } }); final Menu menu = new Menu (shell, SWT.POP_UP); for (int i = 0; i < 8; i++) { MenuItem mi = new MenuItem (menu, SWT.PUSH); mi.setText ("Item" + i); mi.addListener (SWT.Selection, new Listener () { public void handleEvent (Event event) { System.out.println("selection " + event.widget); } }); if (i == 0) menu.setDefaultItem(mi); } item.addListener (SWT.MenuDetect, new Listener () { public void handleEvent (Event event) { menu.setVisible (true); } }); item.addListener(SWT.DefaultSelection, new Listener() { public void handleEvent(Event event) { shell.setVisible(true); item.setVisible(false); } }); item.setImage(image); button.addListener(SWT.Selection, new Listener(){ public void handleEvent(Event event) { shell.setVisible(false); item.setVisible(true); } }); item.setVisible(false); } shell.setBounds(50, 50, 300, 200); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } image.dispose(); display.dispose(); } }
jdk6
import java.awt.AWTException; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.UIManager; /** * * @author Mr.LiuTao */ public class TrayByJdk extends JFrame { private JPanel pane = null; private JButton button = null; // 启动托盘图标的按钮 private JLabel label = null; // 用来显示系统是否支持托盘的信息 private TrayIcon trayIcon = null; // 托盘图标 private SystemTray tray = null; // 本操作系统托盘的实例 //采用jdk1.6的托盘技术 实现跨平台的应用 public TrayByJdk() { super("托盘技术演示"); try { // 将LookAndFeel设置成Windows样式 UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception ex) { ex.printStackTrace(); } pane = new JPanel(); button = new JButton("缩小到托盘"); button.setEnabled(false); label = new JLabel("本操作系统不支持托盘"); pane.add(label); pane.add(button); //判断是否支持托盘 if (SystemTray.isSupported()) { this.tray(); } this.getContentPane().add(pane); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 200); this.setVisible(true); } /** * 托盘相关代码 */ private void tray() { label.setText("本操作系统支持托盘"); button.setEnabled(true); tray = SystemTray.getSystemTray(); // 获得本操作系统托盘的实例 //ImageIcon icon = new ImageIcon("tray.gif"); // 将要显示到托盘中的图标 ImageIcon icon = new ImageIcon("E:\\workspace\\myeclipse66\\ra\\Tray\\src\\16.gif"); // 将要显示到托盘中的图标 PopupMenu pop = new PopupMenu(); // 构造一个右键弹出式菜单 MenuItem show = new MenuItem("显示窗口"); MenuItem exit = new MenuItem("退出演示"); MenuItem author = new MenuItem("Author"); /** * TrayIcon有三个构造 * TrayIcon(Image image) 用“图标”来构造 * TrayIcon(Image image, String tooltip) 用“图标”和“ToolTip”构造 * TrayIcon(Image image, String tooltip, PopupMenu popup) 用“图标”,“ToolTip”,“弹出菜单”来构造一个托盘图标 */ trayIcon = new TrayIcon(icon.getImage(), "托盘技术演示", pop); // 点击本按钮后窗口被关闭,托盘图标被添加到系统的托盘中 button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { tray.add(trayIcon); // 将托盘图标添加到系统的托盘实例中 setVisible(false); // 使窗口不可视 } catch (AWTException ex) { ex.printStackTrace(); } } }); /** * 添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口 */ trayIcon.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { // 鼠标双击 tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标 setVisible(true); // 显示窗口 } } }); show.addActionListener(new ActionListener() { // 点击“显示窗口”菜单后将窗口显示出来 public void actionPerformed(ActionEvent e) { tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标 setVisible(true); // 显示窗口 } }); exit.addActionListener(new ActionListener() { // 点击“退出演示”菜单后推出程序 public void actionPerformed(ActionEvent e) { System.exit(0); // 退出程序 } }); author.addActionListener(new ActionListener() { // 点击“退出演示”菜单后推出程序 public void actionPerformed(ActionEvent e) { showMessage(); } }); pop.add(show); pop.add(exit); pop.add(author); } /** * 显示信息 */ private void showMessage() { JOptionPane.showMessageDialog(this, new JLabel("这是一个系统托盘"), "消息", JOptionPane.INFORMATION_MESSAGE); } public static void main(String[] args) { new TrayByJdk(); } }
- Tray.rar (1.3 MB)
- 下载次数: 286
发表评论
-
Java中Calendar日期对象【笔记】
2010-02-03 09:18 1527Java中Calendar日期对象【笔记】 最近项目中用到了C ... -
通过JAVA与串口(RS232)通信实例
2009-12-10 18:13 21168最近了解到的需求是需要需激光打刻机进行(RS232)串口通信, ... -
JAVA常用的代理设置
2009-09-09 09:50 8242由于公司上网实行代理机制, 而最近一段时间又在研究Web上的O ... -
解析图片1D/2D码(条形码)
2009-06-26 16:07 3539看到一个有趣的东西可以解析条码的工具库 ZXING 测试了一下 ... -
初探JDK6 javax.script (javascript解析)
2009-06-04 13:40 4861初探JDK6 javax.script (javascript ... -
J2SE5.0新特性之监控与管理
2009-05-12 10:47 1744j2se 5.0使用 Java Management Exte ... -
HttpClient请求中文乱码详解
2009-02-16 14:10 38998HttpClient 请求的中文乱码问题 相关类库: comm ... -
java的socket通信的demo
2008-12-31 12:44 4215package test.socket; impor ... -
java与电子邮件
2008-10-07 15:23 1899java与电子邮件 -
如何通过jndi连接数据源
2008-09-22 09:43 1399// Obtain our environment nam ... -
使用+JDBC+的高级数据库操作
2008-09-19 13:27 1334使用+JDBC+的高级数据库操作 -
JSP文件下载--流方式
2008-08-11 14:14 1981<%@page language="jav ... -
apache的fileupload详解
2008-07-31 08:53 2361第1章 文件上传组件的应用与编写 1 1.1 准备实验环境 1 ... -
深入浅出CGlib-打造无入侵的类代理
2008-07-28 14:23 33663CGlib是什么? CGlib是一个强大的,高性能,高质量的C ... -
将jdbc结果集转换成对象列表
2008-07-24 13:11 6206将jdbc结果集转换成对象列表 估计hibernate就是用得 ... -
传统jdbc获取连接的通用方法
2008-06-19 14:24 2584可能是hibernate和ide的关系, 发现目前自己手写jd ... -
apache fileupload中文编码问题
2008-06-18 15:10 4488request.setCheracterEncoding( ... -
JAVA中的反射机制详解(z)
2008-04-14 09:52 1323作者:baocl JAVA反射机制 JAVA反 ... -
JAVA代码注释
2008-03-20 12:09 3319整个类文件注释 示例如下: /* * @(#)O ... -
properties属性文件的相关操作
2008-03-17 13:56 1399properties的使用 加载 Properties p ...
相关推荐
java实现系统托盘两种方法JNI/JDK6.0
java的jdk6安装包
java系统托盘,在jdk1.6里面测试过
java jdk6 java jdk6 java jdk6 java jdk6 java jdk6 java jdk6 java jdk6
JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。从SUN的JDK5.0开始提供了泛型等非常实用的功能,...
JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 jdk1.8新特性 1)Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可。 2)新增lambda表达式 3)提供...
mac jdk6 java6支持最新macOs10.13.4版本及以下,亲测有效
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。这个是Linux系统安装的jdk
JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷歌翻译,非人工翻译。准确性不能保证,请与英文版配合使用 ...
它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK...
java jdk1.8 中文版,更具官方翻译,机不可失失不再来。 整合了之前的所有版本,范围比较广。
java 官方原版 jdk 1.6
Java JDK 6学习笔记.zipJava JDK 6学习笔记.zip Java JDK 6学习笔记.zip Java JDK 6学习笔记.zip
javaJDK8javaJDK8
jdk6配置JDK 6系统配置 javaJDK 6系统配置 java
它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK...
JDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多">JDK(Java Development Kit)是Sun Microsystems...
直接安装,关于环境变量的设置过程就不假赘述了。...path:C:\Program Files\Java\jdk1.6.0\bin; classpath:C:\Program Files\Java\jdk1.6.0\lib\dt.jar; 就是这样了,没有的话直接创建环境就好了
java电子通讯录(带系统托盘)(java+sqlserver系统详细配置方法) java电子通讯录(带系统托盘)(java+sqlserver系统详细配置方法) java电子通讯录(带系统托盘)(java+sqlserver系统详细配置方法) java电子通讯录...