我试图通过点击按钮让我的JDialog弹出我的JFrame中心。我有JOptionPanel在父JFrame上正确弹出,但JDialog相对于JFrame弹出但不在中心。
按钮在我的代码中实际上是JMenuItem,但我在这里将它们写成JButton以使事情变得更容易和直接。
这是我的代码:
从我的父JFrame调用:
JButton about = new JButton("About");
about.addActionListener(new ActionListener() { //this one IS NOT in the center of MyJFrame
public void actionPerformed(ActionEvent e) {
new AboutDialog(MyJFrame.this);
}
});
JButton exit = new JButton("Exit");
exit.addActionListener(new ActionListener() { //this one IS in the center of MyJFrame
public void actionPerformed(ActionEvent e) {
if(JOptionPane.showConfirmDialog(MyJFrame.this, "Are you sure you want to exit ?","",JOptionPane.YES_NO_OPTION) == 0)
System.exit(0);
}
});
AboutDialog Class
public class AboutDialog extends JDialog{
public AboutDialog(JFrame parent) {
setLocationRelativeTo(parent);
setLayout(new BorderLayout());
...
谢谢
答案 0 :(得分:5)
setLocationRelativeTo(parent);
在将所有组件添加到对话框并打包对话框之后,在对话框可见之前,需要执行上述代码。
在当前代码中,对话框的大小为(0,0),因此无法正确居中。