`
sun4love
  • 浏览: 233483 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

swing托盘图标、frame居中显示

阅读更多

 

 

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);
	}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java swt 隐藏和显示任务栏图标和托盘图标(2)

    本文将深入探讨如何使用SWT在Java中隐藏和显示任务栏图标以及托盘图标。 首先,我们需要理解SWT中的`Display`和`Shell`概念。`Display`是应用程序的主要窗口,而`Shell`则是用户与应用交互的窗口。在SWT中,`Shell`...

    JAVA系统托盘图标控制程序

    在Java编程语言中,系统托盘图标(System Tray Icon)是一种功能强大的用户界面元素,它允许应用程序在操作系统任务栏的托盘区域显示图标并提供菜单或快捷操作,即使主窗口被最小化或隐藏也能与用户交互。...

    托盘图标(最小化时显示)

    "托盘图标(最小化时显示)"这个主题主要涉及的是当应用程序最小化到任务栏时,如何让它们的图标仍然在托盘区域可见,以便用户可以方便地与这些程序交互。 1. **托盘区域的用途**: - 提供快速访问:用户可以通过...

    Java Swing实现让窗体居中显示的方法示例

    Java Swing实现让窗体居中显示的方法示例 Java Swing是一个功能强大的UI组件库,它提供了大量的UI组件来帮助开发者快速构建图形用户界面。今天,我们来讨论如何使用Java Swing实现让窗体居中显示的方法。 首先,...

    java Swing 中的托盘

    java 编写 的基于 swing 的桌面托盘

    Swing 实现系统托盘

    总结来说,Java Swing的系统托盘功能是通过`SystemTray`和`TrayIcon`类实现的,它允许开发者在不支持主窗口显示的情况下保持应用程序的可访问性。结合图标、事件监听和上下文菜单,可以创建出功能丰富的系统托盘应用...

    Java代码生成系统托盘图标

    Java提供了Java AWT和Swing库来实现这个功能,允许开发者创建在系统托盘中显示的应用程序图标,以及与之相关的菜单和事件处理。下面将详细讲解如何使用Java代码生成系统托盘图标。 首先,你需要导入必要的Java库: ...

    java 托盘图标

    在Java编程语言中,托盘图标(Tray Icon)是一种特殊的功能,允许应用程序在系统托盘(也称为通知区域)中显示图标并提供相应的菜单或交互。这在很多情况下非常有用,比如当用户想要最小化应用程序到系统托盘,或者...

    Swing显示Html网页

    Swing显示HTML网页是Java开发GUI应用程序时的一个常见需求,主要涉及到Java的Swing库以及相关的第三方库,如JDIC(Java Desktop Integration Components)。本文将详细介绍如何在Swing界面中集成HTML网页显示功能。 ...

    java 实现托盘 显示图标小应用

    在`MyJavaTest`项目中,你可以找到一个完整的示例,包含了一个运行起来后会在系统托盘显示的简单应用。通过这个项目,你可以学习到如何结合`SystemTray`和`TrayIcon`类以及相关的事件监听机制,来创建一个功能完善的...

    修改Javaswing窗体图标.pdf

    Java Swing 窗体图标修改 在 Java Swing 中,修改窗体图标可以使用两种方法:使用 Toolkit 类和使用 ImageIcon 类。 方法一:使用 Toolkit 类 使用 Toolkit 类可以非常方便地修改窗体图标。首先,我们需要获取...

    java_swing设置窗口居中的最佳方法

    在Java Swing中,设置窗口居中的最佳方法是一个常见的需求,特别是在开发用户界面时,为了提升用户体验,确保窗口在不同尺寸的屏幕上都能居中显示是非常重要的。以下是对如何在Java Swing中实现窗口居中的详细解析:...

    Java Swing实现添加数据并查询数据显示

    在本项目中,"Java Swing实现添加数据并查询数据显示" 涉及到了Java后端与数据库交互以及前端用户界面的构建。 首先,你需要了解如何在Java中连接MySQL数据库。这通常涉及到使用JDBC(Java Database Connectivity)...

    Windows系统托盘图标实践(AWT)

    本教程将深入探讨如何在Windows系统中实现托盘图标的功能,该功能允许程序在任务栏通知区域显示一个图标,用户可以点击这个图标来触发特定的事件或显示一个PopMenu。 首先,我们需要导入必要的AWT库: ```java ...

    Java实现桌面右下角弹窗,实现JavaSwing窗体闪烁

    JFrame frame = new JFrame("我的Swing窗口"); frame.setSize(300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` 接下来,我们讨论如何在桌面右下角显示这...

    swing 鼠标事件 loading效果

    在Java的Swing库中,鼠标事件(Mouse Events)是用户与GUI组件交互的重要部分,而loading效果则通常指的是在处理耗时操作时显示的一种视觉指示,以告知用户程序正在运行且尚未完成。本篇文章将深入探讨如何在Swing...

    java swing界面显示IE网页

    java swing GUI界面显示IE网页 根据网址跳转到相应网站

    swing系统托盘示例

    其中之一是系统托盘(System Tray)功能,允许程序在操作系统任务栏的托盘区域显示图标和提供菜单选项,即使主窗口已被关闭。本篇文章将深入探讨如何利用Swing实现系统托盘示例,结合提供的`TrayTest.java`源码以及`...

    用Java程序读取Excel表格内容并显示在Swing中

    将以上代码整合到一个可执行的Java类中,运行程序,Swing界面会显示读取到的Excel数据。记得关闭`FileInputStream`和`Workbook`对象,防止资源泄露。 通过以上步骤,你可以实现一个简单的Java应用,它能够读取...

    Swing Datepicker时间选择器jar包

    Swing Datepicker时间选择器是一个在Java Swing库中用于处理日期选择的组件,它提供了用户友好的界面,允许用户在应用程序中方便地选取日期。在Java编程中,Swing库是一个丰富的图形用户界面(GUI)工具包,它是Java ...

Global site tag (gtag.js) - Google Analytics