如何设置“JOptionPane.showMessageDialog”的位置

时间:2012-12-07 09:20:12

标签: java swing location relative

我想要显示JOptionPane.showMessageDialog消息

  • 屏幕上的任何位置。
  • 相对于JFrame。 (不在JFrame的中心)

例如,这将在作为参数thisFrame提供的JFrame的中心显示消息

 JOptionPane.showMessageDialog(thisFrame, "Your message.");

这将在屏幕中央显示与任何JFrame无关的消息。

JOptionPane.showMessageDialog(null, "Your message.");
  • 我想要的是在任何我想要的地方设置消息的位置

  • 我想要的是设置相对于JFrame的消息位置(不在JFrame的中心)

如何?

3 个答案:

答案 0 :(得分:8)

您需要的是

    final JOptionPane pane = new JOptionPane("Hello");
    final JDialog d = pane.createDialog((JFrame)null, "Title");
    d.setLocation(10,10);
    d.setVisible(true);

答案 1 :(得分:5)

import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;

public class CustomDialog extends JDialog {
    private JPanel myPanel = null;
    private JButton yesButton = null;
    private JButton noButton = null;

    public CustomDialog(JFrame frame, boolean modal, String myMessage) {
    super(frame, modal);
    myPanel = new JPanel();
    getContentPane().add(myPanel);
    myPanel.add(new JLabel(myMessage));
    yesButton = new JButton("Yes");
    myPanel.add(yesButton);
    noButton = new JButton("No");
    myPanel.add(noButton);
    pack();
    //setLocationRelativeTo(frame);
    setLocation(200, 200); // <--
    setVisible(true);
    }
}

答案 2 :(得分:0)

试试这个

JOptionPane pane = new JOptionPane(arguments);
pane.setBounds(x, y,width, height);   
pane.setVisible(true);