2012-12-07 9 views
6

chcę zrobić JOptionPane.showMessageDialog wiadomość pojawiająJak ustawić lokalizację „JOptionPane.showMessageDialog”

  • dowolnym miejscu na ekranie.
  • W stosunku do JFrame. (Nie w środku JFrame)

Na przykład spowoduje to wyświetlenie komunikatu w centrum JFrame przewidzianego jako argument thisFrame

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

I to wyświetli komunikat na środku ekran niezwiązany z jakimkolwiek JFrame.

JOptionPane.showMessageDialog(null, "Your message."); 
  • co chcę, aby ustawić położenie wiadomości dowolnym miejscu chcę

  • co chcę, aby ustawić lokalizację wiadomości w stosunku do JFrame (nie w centrum JFrame)

Jak?

+0

Czy moje pytanie nielegalne/nieważny pod względem GUI doktryny ?! @AndrewThompson –

+2

Należy zauważyć, że 'JOptionPane' może używać *** dowolnego ***' Component' jako obiektu nadrzędnego. Oznacza to, że można go powiązać z forame, dowolnym komponentem wewnątrz niego, dowolnym komponentem w dowolnym pływającym oknie (tool-bar, 'JWindow',' JDialog') wyświetlanym na ekranie) lub oczywiście 'null' (środek ekranu). –

+1

Ten [wątek] (http://stackoverflow.com/q/9807890/1057230) może Cię zainteresować. –

Odpowiedz

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

Spróbuj

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

* "Spróbuj tego" * Czy * ty * wypróbowałeś? Nic nie pojawia się po uruchomieniu w moim środowisku JRE. –

+0

JOptionPane to element JComponent, a nie okno dialogowe lub okno. –

+0

@AndrewThompson Przykro mi, Thompson, nie próbowałem. Tylko sprawdzone te 3 linie. – vels4j

8

Co trzeba to

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

Możesz użyć d.setLocationRelativeTo (someparent); aby ustawić go względem dowolnego składnika interfejsu użytkownika. –

Powiązane problemy