2012-12-07 6 views
6

I JOptionPane.showMessageDialog NachrichtWie die Lage von „JOptionPane.showMessageDialog“

  • Jeder Ort auf dem Bildschirm erscheinen lassen festlegen möchten.
  • Relativ zu JFrame. (Nicht in der Mitte des JFrame)

Zum Beispiel wird dies die Meldung in der Mitte des als Argument angegeben JFrame angezeigt thisFrame

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

Und dies wird die Meldung in der Mitte des Displays Bildschirm ohne Bezug zu einem JFrame.

JOptionPane.showMessageDialog(null, "Your message."); 
  • , was ich will, ist die Position der Nachricht einstellen jeden Ort, den ich

    wollen
  • , was ich will, ist die Position der Nachricht in Bezug auf die JFrame (nicht im Zentrum zu setzen des JFrame)

Wie?

+0

Ist meine Frage illegal/ungültig in Bezug auf die GUI Lehre ?! @AndrewThompson –

+2

Beachten Sie, dass 'JOptionPane' *** beliebige ***' Components' als Eltern verwenden kann. Das heißt, es kann sich auf den Forame, jede Komponente darin, jede Komponente in einem beliebigen schwebenden Fenster (Werkzeugleiste, "JWindow", "JDialog"), die auf dem Bildschirm ist, oder natürlich "null" beziehen (Mitte des Bildschirms). –

+1

Dieser [thread] (http://stackoverflow.com/q/9807890/1057230) könnte für Sie von Interesse sein. –

Antwort

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

dieses

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

* "Versuchen Sie das" * Haben * Sie * es versucht? In meinem JRE wird nichts angezeigt. –

+0

JOptionPane ist eine JComponent kein Dialog oder ein Fenster. –

+0

@AndrewThompson Sorry Thompson, ich habe es nicht versucht. Nur diese 3 Zeilen überprüft. – vels4j

8

Versuchen Was Sie brauchen, ist

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

Sie können d.setLocationRelativeTo (someparent); um es relativ zu einer beliebigen UI-Komponente zu positionieren. –

Verwandte Themen