2013-07-01 9 views
7

Ich habe eine Frage in Bezug auf den Rahmen um eine undecorated JDialog mit dem Metall L & F.Undecorated JDialog Grenze

Schauen Sie sich das Bild, um die Grenze zu sehen, die auf diesem Fenster ist:

enter image description here

Ich versuche herauszufinden, wie ich die Farbe des blauen Randes ganz außerhalb des JDialogs entweder loswerden oder ändern kann. Ich schaute auf die UI-Standardeinstellungen für das Look & Feel, aber ich war nicht in der Lage, mit denen, die dafür funktionierte kommen.

Jeder hat irgendwelche Ideen, wie man diese Grenze loswerden kann?

Danke!

+0

Kann meine Antwort in Ihnen eine andere Frage http://stackoverflow.com/a/32752359/5370194 er Ip Sie? – Jun

Antwort

10

Sie benötigen können sich ändern die Border der Wurzelbereich:

getRootPane(). 
    setBorder(BorderFactory.createLineBorder(Color.RED)); 
3

Sie können etwas tun:

((JPanel)getContentPane()).setBorder(BorderFactory.createLineBorder(Color.BLUE)); 

enter image description here


Sie können versuchen, dies zu tun, um die meisten outsude Grenze zu ändern:

getRootPane().setBorder(BorderFactory.createLineBorder(Color.BLUE)); 

Ist das was willst du tun?

3

Wenn Sie es loswerden möchten, können Sie verwenden

frame.setUndecorated(true); 
frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE); 

Um das Aussehen der es aus dem Java-Stil, um die Windows-Stil ändern Sie

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
+0

Das tut nicht, was ich will. Ich brauche die Titelleiste, um oben zu bleiben, während der Rahmen nicht verziert ist. Der einzige Weg dies zu tun, ist das Metall Look & Feel zu verwenden. Wenn Sie den Fensterdekorations-Stil auf "none" setzen, wird die Titelleiste am oberen Rand gelöscht. – Mark