在我将对话框初始化为
之前 addQuestionDialog = new JDialog(SwingUtilities.windowForComponent(this),"Add question);
我通过调用:
将对话框的位置设置为其父对象的中心addQuestionDialog.setLocationRelativeTo(this)
这可以在其父对象的中心显示对话框,但是当我将对话框设置为模态对话框时,它会完全忽略set方法并在屏幕的左上角显示对话框。
addQuestionDialog = new JDialog(SwingUtilities.windowForComponent(this),"Add question", Dialog.ModalityType.DOCUMENT_MODAL);
答案 0 :(得分:2)
然而,当我将对话框设置为模态对话框时,它会完全忽略set方法并在屏幕的左上角显示对话框。
代码的顺序应为:
dialog.setLocationRelativeTo(..);
dialog.setVisible(true );
我猜你正在使用:
dialog.setVisible(true );
dialog.setLocationRelativeTo(..); // this is not executed until the dialog is closed.
答案 1 :(得分:0)
此JDialog代码序列对我有用:
setModal(true)
pack()
setLocationRelativeTo(frame)
setVisible(true)
在pack()行之前放置setLocationRelativeTo(frame)行会导致对话框偏心放置。有趣。:)