定位模态jframe

时间:2017-05-27 18:50:37

标签: java jframe

我有一个模态jframe作为另一个jframe顶部的工作线程,代码如下:

    final JDialog loading = new JDialog(this);
    JPanel p1 = new JPanel(new BorderLayout());
    JLabel label = new JLabel("Please wait...", JLabel.CENTER);
    p1.add(label, BorderLayout.CENTER);

    loading.setUndecorated(true);
    loading.getContentPane().add(p1);
    loading.pack();
    loading.setSize(300,100); 
    loading.setLocationRelativeTo(this);
    loading.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
    loading.setModal(true);

    SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {
       /* code */
    };
    worker.addPropertyChangeListener(new PropertyChangeListener() {
       /* code */
    });
    worker.execute();
    loading.setVisible(true);

问题是java会放置&#34;请等待......&#34;窗口在父母的中心。我想把它放在底部或其他地方。我没有找到一个位置方法。如果存在这样的事情,请告诉我。

1 个答案:

答案 0 :(得分:1)

获取this边界(打包后),计算所需的x,y并使用loading.setLocation(new Point(x,y));