我要把一个窗口最小化时添加到右下角的托盘,最小化的事件是这样写样的,窗口默认大小时都没问题,可是当程序最大化时,再最小化无法到托盘,怎么解决????????最小化事件 addWindowStateListener(new WindowStateListener() {
public void windowStateChanged(WindowEvent e) { if(e.getOldState() != e.getNewState()){
switch (e.getNewState()) { case ICONIFIED:
tray();
break;
}
} }
});
public void windowStateChanged(WindowEvent e) { if(e.getOldState() != e.getNewState()){
switch (e.getNewState()) { case ICONIFIED:
tray();
break;
}
} }
});
/**
* The window iconified event. This event is delivered when
* the window has been changed from a normal to a minimized state.
* For many platforms, a minimized window is displayed as
* the icon specified in the window's iconImage property.
* @see java.awt.Frame#setIconImage
*/
这是上大学的时候写的一个 东西 拿出来晒晒 带托盘的截屏工具 java实现很简单
你的源码涉及到这个问题吗?
pop=new PopupMenu();
open=new MenuItem("打开主面板");
close=new MenuItem("退出");
pop.add(open);
pop.add(close);
Image icon = Toolkit.getDefaultToolkit().getImage("image/tuopan.jpg");
tray = SystemTray.getSystemTray();
if (SystemTray.isSupported()){
trayicon = new TrayIcon(icon, "图书管理系统2010" ,pop);
trayicon.setImageAutoSize(true);
trayicon.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
if (e.getClickCount()== 2 ){
setVisible(true);
}
}
});
try {
tray.add(trayicon);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "系统不支持托盘");
}
}
else{
System.exit(0);
}
close.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
setVisible(true);
}
});
}