如何使用java在windows中设置弹出窗口?

时间:2016-03-14 09:53:33

标签: java swing

我使用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。当我单独运行时,定位是完美的。

1 个答案:

答案 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.");
    }