2016-05-05 5 views
0

Hallo Ich habe eine JPanel, die eine JTable und ein TextField enthielt. Ich möchte, dass der Bildschirm im Vollbildmodus angezeigt wird, da in meinem Fall die Hälfte des Bildschirms angezeigt wird. Gibt es keinen Bildschirmgröße-Parameter, den ich angeben oder ändern muss?Eine JPanel im Vollbild anzeigen

Dies ist das Ergebnis:

http://i.stack.imgur.com/bmUZX.png

public MainWindow() 
{ 
super("Fullscreen"); 
getContentPane().setPreferredSize(  

Toolkit.getDefaultToolkit().getScreenSize()); 
pack(); 
setResizable(false); 
show(); 
+2

Geben Sie den Code ein, den Sie ausprobiert haben. – Alok

+0

Ich habe es hinzugefügt, aber ich will nicht, wo ich es setze – Georgio

+0

Werden Sie den Code veröffentlichen, in dem Sie das Jpanel hinzugefügt haben, auch dieses Problem aussehen wie ein Layout-Problem – Alok

Antwort

-1

hinzufügen ComponentListener mit componentResized() Methode. Wenn die Größe geändert wird, wird die Größe von JPanel und JTable der Größe von JFrame angepasst. Und während JPanel und JTable definiert werden, sind ihre Größen gleich der Größe von JFrame.

+0

Tun Sie dies nicht! Wenn Sie die Größe der JTable der Rahmengröße anpassen, ist kein Platz für andere Komponenten (wie die TextField). Sie sollten den entsprechenden LayoutManager verwenden, um die untergeordneten Elemente automatisch zu dimensionieren, wenn der Rahmen die Größe ändert. – FredK

+0

Wie ich verstehe, ist das TextField in JTable. Liege ich falsch? –

+0

nein das TextFiled ist nicht in der JTable auf meinem Post ich zeige das Ergebnis auf einem Bild – Georgio

0

Der Rahmen hat eine setSize-Methode, mit der Sie die gewünschte Dimension übergeben können. zu bekommen die Bildschirmgröße Sie

Toolkit.getDefaultToolkit().getScreenSize() 
+0

Ich benutze ein JPanel – Georgio

1
getContentPane().setPreferredSize(Toolkit.getDefaultToolkit().getScreenSize()); 
pack(); 
setResizable(false); 
show(); 

ein paar Probleme mit dem Code verwenden können:

  1. Sie können nicht nur die Größe des Inhaltsfenster stellen Sie die Größe des sein Bildschirm. Ein Rahmen hat Dekorationen (Titelleiste, Rahmen), die berücksichtigt werden müssen.
  2. Die Reihenfolge von pack() und setResizable (...) ist falsch. Die Anweisung pack() muss aufgerufen werden, NACHDEM Sie dem Bildschirm Komponenten hinzugefügt haben und nachdem Sie die Größe der Größe des Rahmens festgelegt haben.
  3. Die Methode show() wird nicht mehr verwendet.

Wenn Sie nur wollen, um den Rahmen anzuzeigen maximiert der Code:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
frame.setResizable(false); 
frame.pack(); 
frame.setVisible(true); 

Ich schlage vor, Sie die FrameDemo sehen in der Swing-tutorial-Code auf How to Make Frames für die Arbeit Sie den Start. Ich weiß nicht, wo Sie Ihr aktuelles Codebeispiel gefunden haben, aber ich würde den Code verlieren und lernen, Swing richtig zu codieren. Platziere das Swing-Tutorial als Beispiel für alle Swing-Grundlagen.

+0

der erste Code genere ein Fehler getContendPane() ist undefined für den Typ möglicherweise, weil ich JPanel nicht JFrame verwende – Georgio

+0

@Georgio Ja, ich sagte dir, der Code war falsch und gab dir dann den richtigen Code zu verwenden. – camickr

+0

aber ich verwende ein JPanel nicht ein JFrame – Georgio