main class
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GraphicsConfiguration;
import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowEvent;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class AstCenterBootstrap extends JFrame {
private static final long serialVersionUID = -5102211705496305088L;
public AstCenterBootstrap() throws HeadlessException {
super();
initComponents();
}
public AstCenterBootstrap(GraphicsConfiguration gc) {
super(gc);
initComponents();
}
public AstCenterBootstrap(String title, GraphicsConfiguration gc) {
super(title, gc);
initComponents();
}
public AstCenterBootstrap(String title) throws HeadlessException {
super(title);
initComponents();
}
public void initComponents() {
setBackground(Color.lightGray);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout());
new AstCenterTrayIcon(this);
setResizable(false);
Image image = Toolkit.getDefaultToolkit().getImage(
this.getClass().getResource("astTray.png"));
this.setIconImage(image);
}
@Override
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
int option = JOptionPane.showConfirmDialog(null, "您确认要关闭系统吗?",
"确认提示", JOptionPane.OK_OPTION | JOptionPane.CANCEL_OPTION);
if (option != JOptionPane.OK_OPTION) {
return;
} else {
}
} else if (e.getID() == WindowEvent.WINDOW_ICONIFIED) {//最小化时隐藏iframe,模拟隐藏任务栏图标
setVisible(false);
}
}
public static void main(String[] args) throws IOException {
AstCenterBootstrap astCenter = new AstCenterBootstrap("AstCenter系统");
astCenter.pack();
Dimension local_size = new Dimension(300, 200);
astCenter.setSize(local_size);
astCenter.setLocationRelativeTo(null);
astCenter.setVisible(true);
}
}
tray icon class
import java.awt.AWTException;
import java.awt.Frame;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
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 java.awt.event.WindowEvent;
import javax.swing.JFrame;
public class AstCenterTrayIcon implements ActionListener {
private PopupMenu pop;
private MenuItem open, close;
private TrayIcon trayicon;
private JFrame jframe;
public AstCenterTrayIcon(JFrame jframe) {
this.jframe = jframe;
initComponents();
}
private void initComponents() {
pop = new PopupMenu();
open = new MenuItem("Open");
open.addActionListener(this);
close = new MenuItem("Close");
close.addActionListener(this);
pop.add(open);
pop.add(close);
Image image = Toolkit.getDefaultToolkit().getImage(
this.getClass().getResource("astTray.png"));
if (SystemTray.isSupported()) {
SystemTray tray = SystemTray.getSystemTray();
trayicon = new TrayIcon(image, "AstCenter系统", pop);
trayicon.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
showFrame();
}
}
});
try {
tray.add(trayicon);
} catch (AWTException e) {
e.printStackTrace();
}
}
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == open) {
showFrame();
}
if (e.getSource() == close) {
jframe.dispatchEvent(new WindowEvent(jframe,
WindowEvent.WINDOW_CLOSING));
}
}
//状态切换效果
public void showFrame() {
jframe.setState(Frame.ICONIFIED);
jframe.setVisible(true);
jframe.setState(Frame.NORMAL);
}
}
分享到:
相关推荐
本文将深入探讨如何使用SWT在Java中隐藏和显示任务栏图标以及托盘图标。 首先,我们需要理解SWT中的`Display`和`Shell`概念。`Display`是应用程序的主要窗口,而`Shell`则是用户与应用交互的窗口。在SWT中,`Shell`...
在Java编程语言中,系统托盘图标(System Tray Icon)是一种功能强大的用户界面元素,它允许应用程序在操作系统任务栏的托盘区域显示图标并提供菜单或快捷操作,即使主窗口被最小化或隐藏也能与用户交互。...
"托盘图标(最小化时显示)"这个主题主要涉及的是当应用程序最小化到任务栏时,如何让它们的图标仍然在托盘区域可见,以便用户可以方便地与这些程序交互。 1. **托盘区域的用途**: - 提供快速访问:用户可以通过...
Java Swing实现让窗体居中显示的方法示例 Java Swing是一个功能强大的UI组件库,它提供了大量的UI组件来帮助开发者快速构建图形用户界面。今天,我们来讨论如何使用Java Swing实现让窗体居中显示的方法。 首先,...
java 编写 的基于 swing 的桌面托盘
总结来说,Java Swing的系统托盘功能是通过`SystemTray`和`TrayIcon`类实现的,它允许开发者在不支持主窗口显示的情况下保持应用程序的可访问性。结合图标、事件监听和上下文菜单,可以创建出功能丰富的系统托盘应用...
Java提供了Java AWT和Swing库来实现这个功能,允许开发者创建在系统托盘中显示的应用程序图标,以及与之相关的菜单和事件处理。下面将详细讲解如何使用Java代码生成系统托盘图标。 首先,你需要导入必要的Java库: ...
在Java编程语言中,托盘图标(Tray Icon)是一种特殊的功能,允许应用程序在系统托盘(也称为通知区域)中显示图标并提供相应的菜单或交互。这在很多情况下非常有用,比如当用户想要最小化应用程序到系统托盘,或者...
Swing显示HTML网页是Java开发GUI应用程序时的一个常见需求,主要涉及到Java的Swing库以及相关的第三方库,如JDIC(Java Desktop Integration Components)。本文将详细介绍如何在Swing界面中集成HTML网页显示功能。 ...
在`MyJavaTest`项目中,你可以找到一个完整的示例,包含了一个运行起来后会在系统托盘显示的简单应用。通过这个项目,你可以学习到如何结合`SystemTray`和`TrayIcon`类以及相关的事件监听机制,来创建一个功能完善的...
Java Swing 窗体图标修改 在 Java Swing 中,修改窗体图标可以使用两种方法:使用 Toolkit 类和使用 ImageIcon 类。 方法一:使用 Toolkit 类 使用 Toolkit 类可以非常方便地修改窗体图标。首先,我们需要获取...
在Java Swing中,设置窗口居中的最佳方法是一个常见的需求,特别是在开发用户界面时,为了提升用户体验,确保窗口在不同尺寸的屏幕上都能居中显示是非常重要的。以下是对如何在Java Swing中实现窗口居中的详细解析:...
在本项目中,"Java Swing实现添加数据并查询数据显示" 涉及到了Java后端与数据库交互以及前端用户界面的构建。 首先,你需要了解如何在Java中连接MySQL数据库。这通常涉及到使用JDBC(Java Database Connectivity)...
本教程将深入探讨如何在Windows系统中实现托盘图标的功能,该功能允许程序在任务栏通知区域显示一个图标,用户可以点击这个图标来触发特定的事件或显示一个PopMenu。 首先,我们需要导入必要的AWT库: ```java ...
JFrame frame = new JFrame("我的Swing窗口"); frame.setSize(300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` 接下来,我们讨论如何在桌面右下角显示这...
在Java的Swing库中,鼠标事件(Mouse Events)是用户与GUI组件交互的重要部分,而loading效果则通常指的是在处理耗时操作时显示的一种视觉指示,以告知用户程序正在运行且尚未完成。本篇文章将深入探讨如何在Swing...
java swing GUI界面显示IE网页 根据网址跳转到相应网站
其中之一是系统托盘(System Tray)功能,允许程序在操作系统任务栏的托盘区域显示图标和提供菜单选项,即使主窗口已被关闭。本篇文章将深入探讨如何利用Swing实现系统托盘示例,结合提供的`TrayTest.java`源码以及`...
将以上代码整合到一个可执行的Java类中,运行程序,Swing界面会显示读取到的Excel数据。记得关闭`FileInputStream`和`Workbook`对象,防止资源泄露。 通过以上步骤,你可以实现一个简单的Java应用,它能够读取...
Swing Datepicker时间选择器是一个在Java Swing库中用于处理日期选择的组件,它提供了用户友好的界面,允许用户在应用程序中方便地选取日期。在Java编程中,Swing库是一个丰富的图形用户界面(GUI)工具包,它是Java ...