1
我有一個模式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將會把那「請稍候...」窗口在中心的父母。我想放在底層或其他地方。我沒有找到一個位置方法。請讓我知道是否存在這樣的事情。
居中的對話框也正是['setLocationRelativeTo'](https://docs.oracle.com/ javase/8/docs/api/java/awt/Window.html#setLocationRelativeTo-java.awt.Component-)方法正在執行。如果您想將其放置在底部,請使用['setLocation'](https://docs.oracle.com/javase/8/docs/api/java/awt/Window.html#setLocation-java.awt。 Point-)方法。首先用['getLocationOnScreen'](https://docs.oracle.com/javase/8/docs/api/java/awt/Component.html#getLocationOnScreen--)獲取父幀的位置,然後減去大小使對話框顯示在底部邊緣 – msrd0