- 浏览: 1635261 次
- 性别:
- 来自: 长春
文章分类
- 全部博客 (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 1582Java中Calendar日期对象【笔记】 最近项目中用到了C ... -
通过JAVA与串口(RS232)通信实例
2009-12-10 18:13 21425最近了解到的需求是需要需激光打刻机进行(RS232)串口通信, ... -
JAVA常用的代理设置
2009-09-09 09:50 8318由于公司上网实行代理机制, 而最近一段时间又在研究Web上的O ... -
解析图片1D/2D码(条形码)
2009-06-26 16:07 3589看到一个有趣的东西可以解析条码的工具库 ZXING 测试了一下 ... -
初探JDK6 javax.script (javascript解析)
2009-06-04 13:40 4912初探JDK6 javax.script (javascript ... -
J2SE5.0新特性之监控与管理
2009-05-12 10:47 1789j2se 5.0使用 Java Management Exte ... -
HttpClient请求中文乱码详解
2009-02-16 14:10 39129HttpClient 请求的中文乱码问题 相关类库: comm ... -
java的socket通信的demo
2008-12-31 12:44 4271package test.socket; impor ... -
java与电子邮件
2008-10-07 15:23 1955java与电子邮件 -
如何通过jndi连接数据源
2008-09-22 09:43 1450// Obtain our environment nam ... -
使用+JDBC+的高级数据库操作
2008-09-19 13:27 1379使用+JDBC+的高级数据库操作 -
JSP文件下载--流方式
2008-08-11 14:14 2048<%@page language="jav ... -
apache的fileupload详解
2008-07-31 08:53 2429第1章 文件上传组件的应用与编写 1 1.1 准备实验环境 1 ... -
深入浅出CGlib-打造无入侵的类代理
2008-07-28 14:23 33820CGlib是什么? CGlib是一个强大的,高性能,高质量的C ... -
将jdbc结果集转换成对象列表
2008-07-24 13:11 6308将jdbc结果集转换成对象列表 估计hibernate就是用得 ... -
传统jdbc获取连接的通用方法
2008-06-19 14:24 2633可能是hibernate和ide的关系, 发现目前自己手写jd ... -
apache fileupload中文编码问题
2008-06-18 15:10 4542request.setCheracterEncoding( ... -
JAVA中的反射机制详解(z)
2008-04-14 09:52 1372作者:baocl JAVA反射机制 JAVA反 ... -
JAVA代码注释
2008-03-20 12:09 3387整个类文件注释 示例如下: /* * @(#)O ... -
properties属性文件的相关操作
2008-03-17 13:56 1445properties的使用 加载 Properties p ...
相关推荐
在实现系统托盘功能时,开发者需要编写本地方法来创建和管理托盘图标,并通过JNI将这些方法暴露给Java代码。这通常涉及以下步骤: 1. 创建一个本地方法声明在Java类中,例如`native void createTrayIcon();` 2. ...
总结来说,Java的系统托盘功能使得开发者可以创建更加友好且易于访问的应用程序,通过`TrayIcon`类提供的API,能够轻松实现图标显示、用户交互以及弹出菜单等功能,从而提升应用的易用性和可维护性。
从Java SE 6(即JDK 1.6)开始,官方提供了内置的支持来创建系统托盘图标,这主要通过`java.awt.SystemTray`类实现。`SystemTray`类是用于创建托盘图标的入口类,它提供了一些静态方法来检查当前平台是否支持托盘...
2. 动态代理:JDK6引入了`java.lang.reflect.Proxy`类,允许动态创建代理对象,实现接口方法的调用。 3. 注解(Annotation):增强了代码的元数据功能,可以用于编译时检查、运行时处理等。 4. 自动装箱与拆箱:简化...
- **Nashorn JavaScript引擎**:虽然在JDK 6中未完全实现,但JDK 7开始引入了Nashorn JavaScript引擎,为Java与JavaScript的交互提供了更高效的方式。 - **改进的Swing和JavaFX**:UI组件得到了增强,包括更好的...
3. 安装完成后,确保在系统的环境变量配置中包含了JDK的bin目录,这样可以在任何地方运行Java命令,如`javac`(Java编译器)和`java`(Java解释器)。 4. 为了验证JDK是否正确安装,可以打开命令行窗口并输入`java -...
6. **默认方法**:在接口中添加默认方法,允许不破坏旧的实现,同时为接口添加新的功能。这在增加API时非常有用。 7. ** Nashorn JavaScript引擎**:Java8集成了Nashorn JavaScript引擎,允许Java代码与JavaScript...
Java Development Kit (JDK) 是Java编程语言的核心组件,它包含了一组开发工具,用于创建、编译、调试和运行Java应用程序。JDK6,也称为JDK 1.6,是Oracle公司发布的一个重要版本,它在2006年推出,提供了许多新特性...
`JAVA_HOME`应指向JDK6的安装目录,而`PATH`则需要包含`JAVA_HOME/bin`,这样系统才能在任何地方执行Java命令,如`javac`(Java编译器)和`java`(Java虚拟机)。 JDK6的主要特性包括: 1. **增强的泛型**:引入了...
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开始提供了泛型等非常实用的功能,...
mac jdk6 java6支持最新macOs10.13.4版本及以下,亲测有效
6. **NIO.2(New IO)**:JDK6引入了NIO的扩展,提供了更丰富的文件系统操作API,包括文件通道、文件属性和异步I/O等。 7. **脚本引擎支持**:JDK6开始支持JavaScript和其他脚本语言,如Rhino引擎,使得Java平台...
6. **Java打包工具(jar)**:用于创建和管理Java档案(JAR)文件,便于代码打包和分发。 7. **调试工具(jdb)**:帮助开发者调试Java应用程序。 8. **性能分析工具**:如JVisualVM和JConsole,用于监控和分析Java...
Java JDK 6学习笔记是Java开发者入门和进阶的重要参考资料,由知名作者林信良编著。本笔记主要涵盖了JDK 6版本的核心特性和关键概念,为读者提供了全面而深入的学习路径。以下是对其中重要知识点的详细阐述: 1. **...
JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 jdk1.8新特性 1)Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可。 2)新增lambda表达式 3)提供...
《Java JDK6学习笔记》是由林信良编著的一本针对Java初学者和进阶者的学习资料,书中详细讲解了Java编程语言与JDK6版本的相关知识。这本笔记不仅包含传统的Java学习内容,还结合了作者独特的见解和实践经验,为读者...
Java JDK 1.8是Java开发工具包的一个重要版本,主要针对Linux x64平台进行了优化。这个压缩包文件“java-jdk1.8-jdk-8u181-...同时,了解如何在不同的操作系统环境下安装和配置JDK也是每个Java开发者的基础技能之一。