2012-04-06 7 views
1

Eigentlich will ich in der Mitte des JDesktopPane die JInternalFrame zeigen und ich verwenden, um diese Methode, wie ich es in Jframes verwenden, aber es hat nicht funktioniert:Wie setze ich einen JinternalFrame in der Mitte des JdesktopPane?

Extraction ex=new Extraction();//Extraction is the name of the JintenalFrame jDesktopPane1.add(ex); ex.setLocationRelativeTo(this); ex.setVisible(true);

Also frage mich, ob es eine andere Methode ist so kann ich den JinternalFrame in der Mitte des JdesktoPane anzeigen. Danke

+1

* „Eigentlich möchte ich ..“ * ich mit Menschen entsprechen wollen, dass alle Buchstaben von Begriffen wie ‚wollen‘ buchstabieren wird. ***Nächster!*** –

Antwort

5

A javax.swing.JInternalFrame die bequeme setLocationRelativeTo(null) Implementierung in java.awt.Window gefunden fehlt, aber Sie können einen ähnlichen Ansatz verwenden. Ziehen Sie einfach die Hälfte der Breite und Höhe des internen Rahmens von den entsprechenden Mittelkoordinaten des Desktop-Bereichs ab. Verwenden Sie die neuen Koordinaten in Ihrem Anruf an setLocation().

Sie sollten bei Bedarf auch die Abmessungen des internen Rahmens anpassen.

7

Versuchen Sie so etwas wie:

JDesktopPane mainPanel; 
JInternalFrame jif_test = new JInternalFrame(); 

public void centerJIF(JInternalFrame jif) { 
    Dimension desktopSize = mainPanel.getSize(); 
    Dimension jInternalFrameSize = jif.getSize(); 
    int width = (desktopSize.width - jInternalFrameSize.width)/2; 
    int height = (desktopSize.height - jInternalFrameSize.height)/2; 
    jif.setLocation(width, height); 
    jif.setVisible(true); 
} 

Und

centerJIF(jif_test); 
Verwandte Themen