我使用Swing创建了一个应用程序。 我正在尝试使用JWindow创建一个弹出通知(不是使用JOptionPane),以便它看起来像一个窗口弹出通知,我没有错误地做到了。
当我将此窗口链接到我的mainFrame(JFrame)(用于其他目的的主机并包含将导致此弹出窗口触发的代码)时,弹出通知窗口将失去其位置和位置与mainFrame相关。
如何将其设置为与mainFrame无关并且其位置保持独立?
以下是弹出窗口的代码。
popWindow= new JWindow();
popWindow.setLayout(null);
Toolkit tool = Toolkit.getDefaultToolkit();
Dimension dim= tool.getScreenSize();
int xPos= dim.width - (WIDTH+60);
int yPos= dim.height - (HEIGHT+60);
popWindow.setBounds(xPos, yPos, HEIGHT, WIDTH);
msgLabel= new JLabel("PopUp window");
msgLabel.setBounds(10,0,200,100);
buttonIcon = new ImageIcon("C:\\Users\\tt\\Desktop\\close_icon.png");
closeButton = new JButton(buttonIcon);
closeButton.setBounds(275,0,25,25);
closeButton.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent ae){
popWindow.dispose();
}
});
popWindow.add(closeButton);
popWindow.add(msgLabel);
popWindow.setVisible(true);
我已将此代码保存在其他java文件中,并使用其构造函数将其链接到我的mainFrame。当我单独运行时,定位是完美的。
答案 0 :(得分:0)
//检查是否支持SystemTray if(!SystemTray.isSupported()){ System.out.println("不支持SystemTray"); 返回; } final PopupMenu popup = new PopupMenu(); 最终的TrayIcon trayIcon = 新的TrayIcon(createImage(" images / bulb.gif","托盘图标")); final SystemTray tray = SystemTray.getSystemTray();
// Create a pop-up menu components
MenuItem aboutItem = new MenuItem("About");
CheckboxMenuItem cb1 = new CheckboxMenuItem("Set auto size");
CheckboxMenuItem cb2 = new CheckboxMenuItem("Set tooltip");
Menu displayMenu = new Menu("Display");
MenuItem errorItem = new MenuItem("Error");
MenuItem warningItem = new MenuItem("Warning");
MenuItem infoItem = new MenuItem("Info");
MenuItem noneItem = new MenuItem("None");
MenuItem exitItem = new MenuItem("Exit");
//Add components to pop-up menu
popup.add(aboutItem);
popup.addSeparator();
popup.add(cb1);
popup.add(cb2);
popup.addSeparator();
popup.add(displayMenu);
displayMenu.add(errorItem);
displayMenu.add(warningItem);
displayMenu.add(infoItem);
displayMenu.add(noneItem);
popup.add(exitItem);
trayIcon.setPopupMenu(popup);
try {
tray.add(trayIcon);
} catch (AWTException e) {
System.out.println("TrayIcon could not be added.");
}