社区
Java SE
帖子详情
如何实现窗口的隐藏
liuxing_par
2007-05-07 04:34:58
我请问一下,如果用JAVA来实现像QQ一样把窗口托到边角自动隐藏的功能
...全文
579
15
打赏
收藏
如何实现窗口的隐藏
我请问一下,如果用JAVA来实现像QQ一样把窗口托到边角自动隐藏的功能
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yll890305
2010-09-13
打赏
举报
回复
请问import javax.swing.UIManager这个库有什么作用?
liuxing_par
2007-05-09
打赏
举报
回复
顶起来,有没有那位高人帮帮忙啊.
蒋晟
2007-05-08
打赏
举报
回复
http://www.microsoft.com/msj/archive/S274.aspx
为之易
2007-05-08
打赏
举报
回复
getLocation() 得到窗口的位置,
当窗口的位置符合隐藏的条件后setLocation(...)
zuguanqun
2007-05-08
打赏
举报
回复
学习,收藏
insiku
2007-05-08
打赏
举报
回复
to lixiaoxue85(蛮野蛮) (
你这个是系统托盘吧
LZ说的是 拖到屏幕边界处自动隐藏
alex_lu
2007-05-08
打赏
举报
回复
学习....................
pest1999
2007-05-07
打赏
举报
回复
mark
liuxing_par
2007-05-07
打赏
举报
回复
千里冰封可否到你的代码贴出来看一下啊?
jianghuxiaoxiami
2007-05-07
打赏
举报
回复
学习
lixiaoxue85
2007-05-07
打赏
举报
回复
JDK1.6已经实现了托盘 至于何时产生托盘 就自己计算吧
package csdn;
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;
import javax.swing.UnsupportedLookAndFeelException;
/**
* Java1.6.0实现系统托盘技术演示
*
摘要:Java1.6.0实现系统托盘技术演示:本演示程序实现了点击按钮窗体关闭,
托盘图标挂于系统托盘上,鼠标双击托盘图标,窗体显示,托盘图标消失,在托盘图标上点右键可弹出选择菜单
(显示窗口,退出系统,Author),分别能完成不同的任务要求。
* @author 五斗米 <如转载请保留作者和出处>
* @blog http://blog.csdn.net/mq612
*/
public class TrayDemo extends JFrame {
private JPanel pane = null;
private JButton button = null; // 启动托盘图标的按钮
private JLabel label = null; // 用来显示系统是否支持托盘的信息
private TrayIcon trayIcon = null; // 托盘图标
private SystemTray tray = null; // 本操作系统托盘的实例
public TrayDemo() {
super("Java1.6.0托盘技术演示");
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("images/icon.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(), "Java1.6.0托盘技术演示", 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("<html>作者:mq612(五斗米)<br>Blog:http://blog.csdn.net/mq612</html>"), "五斗米", JOptionPane.INFORMATION_MESSAGE);
}
public static void main(String[] args) {
new TrayDemo();
}
}
千里冰封820
2007-05-07
打赏
举报
回复
自己可以监听窗口的移动事件,然后计算自己离窗口的距离
当在距离之内的时候,起一个线程,一直更新当前的位置,造成一种窗口移动的效果,
我以前实现过这种功能
liuxing_par
2007-05-07
打赏
举报
回复
最好是能告知一下是那个类啊.
butnet
2007-05-07
打赏
举报
回复
JDK 1.5
里有一个类可以很简单的实现,
你可以搜一下,
什么类我忘了.
C#
实现
仿QQ
窗口
靠边自动
隐藏
本文介绍了一个使用C#
实现
的QQ
窗口
自动
隐藏
功能,通过设置三个计时器来监控鼠标位置和
窗口
位置,当
窗口
靠近屏幕上方时自动
隐藏
,鼠标离开后则恢复显示。
VC中如何
实现
窗口
的
隐藏
本文详细介绍了在VC环境下使用MFC框架通过修改
窗口
样式和在OnInitDialog()函数中调用特定代码
实现
窗口
隐藏
及后台运行的方法。同时,提供了一种使初始
窗口
不显示的策略,通过构造函数和重载WM_WINDOWPOSCHANGING消息处理函数来彻底
隐藏
窗口
,直至通过设置布尔变量并调用ShowWindow(SW_SHOW)显示。
Qt
实现
窗口
自动
隐藏
在Qt中
实现
窗口
自动
隐藏
,可以设置
窗口
属性使其始终顶层并去除标题栏和边框,通过监听鼠标移动事件判断是否在边缘区域,
实现
隐藏
和显示
窗口
的功能。本文提供了一个示例代码,创建一个
窗口
类,重写鼠标移动事件,当鼠标位于
窗口
边缘时
隐藏
窗口
,离开时显示
窗口
。
易语言
实现
启动
窗口
靠边
隐藏
技术
本文介绍易语言中“启动
窗口
靠边
隐藏
”功能,易语言是面向中文用户的编程语言,降低了编程门槛。通过创建
窗口
、监听事件、检测边界和
隐藏
处理等步骤,展示
窗口
在屏幕边缘自动
隐藏
的
实现
方法,还给出源码示例,并提及测试与优化建议,以增强用户体验。
C语言
实现
控制台
窗口
隐藏
本文介绍如何使用Windows API中的FindWindow和ShowWindow函数来
实现
窗口
的
隐藏
效果。FindWindow函数用于获取指定类名和
窗口
名的
窗口
句柄,而ShowWindow函数则用于设置
窗口
的显示状态,如
隐藏
、最大化、最小化等。
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章