2017-05-19 4 views
0

enter image description hereJFrame erscheint mit unterschiedlicher Größe

enter image description here

Ich habe den folgenden Code

package trtyhard;  

import javax.swing.JFrame; 

public class TrtyHard { 

    public static void main(String[] args) { 

     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       JFrame frame = new JFrame("TryHard"); 
       //frame.setSize(700, 500); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.setResizable(false); 
       frame.setSize(700, 500); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true);    
      } 
     });   

    }  

} 

Manchmal JFrame mit diffirent Größe erscheint. Manchmal hat es 10 zusätzliche mm an der Unterseite, manchmal 5-7 zusätzliche mm an der rechten Seite. Wie kann ich es beheben?

+0

Es erscheint manchmal als eine andere Größe, auch wenn Sie denselben Code auf demselben Computer ausführen? –

+0

Könnten Sie einen Screenshot hinzufügen, um dies zu zeigen? – ItamarG3

+0

GUIs sollten erstellt und auf dem EDT gestartet werden. –

Antwort

2

Zusätzlich zu machen, dass der GUI auf den Event Dispatch Thread EDT) versuchen erstellt wird, um den Code wie folgt Restrukturierung:

JFrame frame = new JFrame("TryHard"); 
//frame.setSize(700, 500); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setResizable(false); 
frame.setSize(700, 500); 
frame.setLocationRelativeTo(null); 
frame.setVisible(true); 

Der Punkt ist, die Rahmeneigenschaften festlegen, bevor Sie eine setSize tun() oder pack() auf der Rahmen.

Lesen Sie den Abschnitt aus dem Swing-Tutorial Initial Thread für weitere Informationen über die EDT.

Verwandte Themen