Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java在windows中设置弹出窗口?_Java_Swing - Fatal编程技术网

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

如何使用java在windows中设置弹出窗口?,java,swing,Java,Swing,我已经使用Swing创建了一个应用程序。 我正在尝试使用JWindow创建一个弹出式通知(而不是使用JOptionPane),使它看起来像一个windows弹出式通知,并且我没有出错 问题是,当我将此窗口链接到我的大型机(JFrame)(一个用于其他目的的大型机,包含将导致此弹出窗口触发的代码)时,弹出通知窗口将失去其位置,并且位置与大型机相关 如何将其设置为与大型机无关,并且其位置保持独立 下面是弹出窗口的代码 popWindow= new JWindow(); popWindow.setLa

我已经使用Swing创建了一个应用程序。 我正在尝试使用JWindow创建一个弹出式通知(而不是使用JOptionPane),使它看起来像一个windows弹出式通知,并且我没有出错

问题是,当我将此窗口链接到我的大型机(JFrame)(一个用于其他目的的大型机,包含将导致此弹出窗口触发的代码)时,弹出通知窗口将失去其位置,并且位置与大型机相关

如何将其设置为与大型机无关,并且其位置保持独立

下面是弹出窗口的代码

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文件中,并使用其构造函数将其链接到我的大型机。当我单独运行时,定位非常完美。

//检查是否支持SystemTray 如果(!SystemTray.isSupported()){ System.out.println(“不支持系统托盘”); 返回; } 最终弹出菜单弹出=新建弹出菜单(); 最后一场比赛= 新TrayIcon(createImage(“images/bull.gif”,“托盘图标”); 最终SystemTray=SystemTray.getSystemTray()


你是在问显示器屏幕上框架的起始显示位置吗?@user3437460我没听清你的问题!开始显示位置是什么意思?我在问
是什么意思,我如何设置它与主机无关,并且它的位置保持独立
@user3437460我使用Swing代码制作了一个应用程序。这是一个包含很多内容的JFrame,我为上面的代码创建了一个单独的类文件,比如“popup.java”。当我单独运行文件“popup.java”中的代码时,它会出现在屏幕上它应该出现的地方。现在,当我在JFrame代码中使用这个类文件并运行JFrame时,这个弹出窗口的位置会改变。那么,我应该怎么做才能使它的位置保持与我单独运行时的位置相同呢?
它出现在屏幕上,它应该出现在屏幕上,因此您创建的帧应该出现在屏幕上的什么位置?在你的屏幕中央
然后我运行我的JFrame,这个弹出窗口的位置改变了
它是如何改变的?这不是我现在想要的,但是感谢您的帮助并告诉我如何设置系统托盘!:)
    // 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.");
    }