目前,弹出的对话框位于单击的Jbutton组件的正下方。
答案 0 :(得分:4)
你可以试试这个:
JOptionPane.showMessageDialog(frame, "Hello");
或
JOptionPane.showMessageDialog(this, "Hello");
来自Java Docs:
parentComponent:定义要作为其父级的Component 这个对话框。它有两种使用方式:包含它的框架 用作对话框的Frame父级及其屏幕 坐标用于放置对话框。一般来说, 对话框位于组件正下方。这个参数可以 为null,在这种情况下,默认的Frame用作父级,而 对话框将以屏幕为中心(取决于L& F)。
答案 1 :(得分:2)
要在屏幕上居中显示选项窗格,请提供null
父级,但请注意,不会阻止用户访问父组件GUI。
E.G。
import java.awt.Component;
import javax.swing.*;
class CenterTheDialog {
CenterTheDialog() {
int result = JOptionPane.showConfirmDialog(null, "Show over parent?");
for (int ii=1; ii<4; ii++) {
JFrame f = new JFrame("Frame " + ii);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Component parent = (JOptionPane.OK_OPTION==result ? f : null);
f.setSize(400,300);
f.setLocationByPlatform(true);
f.setVisible(true);
JDialog d = new JDialog(f);
d.setTitle("Dialog " + ii);
d.setSize(300,200);
d.setLocationRelativeTo(parent);
d.setVisible(true);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new CenterTheDialog();
}
});
}
}