2012-12-07 76 views
6

的位置出現如何設置我要讓<code>JOptionPane.showMessageDialog</code>消息「JOptionPane.showMessageDialog」

  • 在屏幕的任何地方。
  • 相對於JFrame。 (未在JFrame的中心)

例如,這將在作爲參數thisFrame

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

提供JFrame的中心顯示該消息,這將在的中心顯示該消息屏幕與任何JFrame無關。

JOptionPane.showMessageDialog(null, "Your message."); 
  • 我想要的是設置郵件的位置,我想

  • 我要的是相對於消息的位置設置到JFrame(不是在中心的任何地方的JFrame)

怎麼樣?

+0

是我的問題不合法/ GUI中的教義方面無效? @AndrewThompson –

+2

請注意,'JOptionPane'可以使用任何***'Component'作爲父項。這意味着,它可以與forame,它內部的任何組件,任何在/任何浮動窗口中的任何組件(工具欄,JWindow,JDialog)在屏幕上相關),當然也可以是'null' (屏幕中心)。 –

+1

This [thread](http://stackoverflow.com/q/9807890/1057230)可能對您有些興趣。 –

回答

4
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); 
    } 
} 
0

試試這個

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

*「試試這個」*您*嘗試過嗎?在我的JRE中運行時沒有出現任何內容。 –

+0

JOptionPane是一個JComponent而不是對話框或窗口。 –

+0

@AndrewThompson對不起湯普森,我沒有嘗試。只檢查這3行。 – vels4j

8

你需要的是

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

你可以使用d.setLocationRelativeTo(someparent);相對於任何UI組件來定位它。 –