JPanel passt die Größe nicht an

didi577

Bekanntes Mitglied
Hi,

ich habe ein kleines nJPanel (pnlLand), Auf diesem Habe ich eine Tabelle (scrollLand) mit zwei Zeilen gesetzt. Das JPanel passt sich aber nocht der Größe der Tabelle an. Ich habe u.a. folgende Einstellung probiert:
Java:
pnlLand.setPreferredSize(scrollLand.getPreferredSize());

das kommt raus:
upload_2017-1-3_9-9-3.png

Was muss ich tun damit die Tabelle in voller Größe im JPanel angezeigt wird?
 

Robat

Top Contributor
Hast du schon versucht deinem Jpanel, auf dem die jtable liegt, ein borderlayout o.ä. als Layout zu geben?
Das sollte die Tabelle/das scrollPane eigentlich zwingen sich über die gesamte Breite zu verteilen.

Gruß
Robert
 

Robat

Top Contributor
Hier mal ein kleines Beispiel welches die Tabelle auf die gesamte Größe des JPanels streckt:


Java:
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setSize(500, 500);
          
            String[][] d = { {"Bla", "A"}, {"Bla2", "B"} };
            String[] a = { "1", "2" };
          
            JTable t = new JTable(d, a);
            JPanel p = new JPanel();
          
            p.setLayout(new BorderLayout());
            p.add(t);
          
            f.add(p);
            f.setVisible(true);

(sorry für die schlechte Variablenbezeichnung - musste schnell gehen :D )

Gruß
Robert
 

Robat

Top Contributor
Das liegt daran, weil die Tabelle "alleine" auf der Komponente sitzt.

Wie du in der API lesen kannst:

"Note that if you wish to use a JTable in a standalone view (outside of a JScrollPane) and want the header displayed, you can get it using getTableHeader() and display it separately."

Entweder holst du dir also direkt den Header der Table und machst ihn sichtbar, oder du fügst einfach noch eine ScrollPane hinzu :)

Hier noch mal das Beispiel mit dem ScrollPane:
Java:
public static void main(String[] args)
{
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setSize(500, 500);

    String[][] d = { {"Bla", "A"}, {"Bla2", "I"} };
    String[] a = { "1", "2" };

    JTable t = new JTable(d, a);
    JPanel p = new JPanel();
    JScrollPane sp = new JScrollPane(t);

    p.setLayout(new BorderLayout());
    p.add(sp);

    f.add(p);
    f.setVisible(true);
}
~quick'n'dirty

Gruß Robert
 

didi577

Bekanntes Mitglied
@Robat
so habe ich es:
Java:
String [][] daten = new String [][] {{"kA","bb","bw","sh","by","ni","nw","mv","rp","sn","st","th"}};
       String [] laender = new String [] {"kA","BB","BW","SH","BY","NI","NW","MV","RP","SN","ST","TH"};
       tblmLand = new DefaultTableModel(daten, laender);
       tblLand = new JTable(tblmLand);
       scrollLand = new JScrollPane(tblLand);
       
       scrollLand.getPreferredSize();
 

Robat

Top Contributor
Ich weiß noch nicht so genau warum du immer versuchst die PreferredSize zu setzen.
Das regelt das Layout für dich. (deswegen würde ich dir auch das BorderLayout empfehlen).
 

didi577

Bekanntes Mitglied
habe jetzt alle Preferred Angaben auskommentiert, dem Panel das Border Layout zugefügt und bekomme das;
upload_2017-1-3_11-28-46.png

die Tabelle ist schon mal sichtbar ;)
 

didi577

Bekanntes Mitglied
nö ich erwarte das
upload_2017-1-3_11-47-13.png
nur mit vollständiger Tabelle zwischen der ersten und zweiten Zeile
ich muss dazu sagen dass das Panel pnlLand noch auf einem anderen Panel sitzt
das andere Panel hat ein Grid Layout
Java:
pnlAuswerten.setLayout(new GridLayout(0,1,5,1));
wenn ich hiern
Java:
pnlAuswerten.setPreferredSize(getPreferredSize());
auskommentiere ist dieses verzerrte Bild

Auf dem Panel pnlAuswerten sitzen mehrere JLabel und JTabel untereinander
 

didi577

Bekanntes Mitglied
@Robat
erstmal Sorry wegen dem Durcheinander, ich habe jetzt umgebaut und schon ein besseres Ergebnis:
auf dem Panel pnlAuswerten sitzen dann die Panel mit den Tabellen und die Label mit den Fragen untereinander. Nach jedem Label soll eine Table erscheinen. Das sieht jetzt so aus (ich habe erst eine Tabelle gebaut).
upload_2017-1-3_12-38-23.png
das einzige was jetzt noch stört ist der große Leerraum zwischen der Tabelle und "A.Fragen zum Dozenten"
Ich vermute ich muss für die Tabelle scrollLand noch irgendetwas einstellen?
 

Robat

Top Contributor
Ändert sich die Größe / der Inhalt deiner Tabelle denn?
Wenn nicht dann musst du ja auch kein ScrollPane implementieren, was die ganze Geschichte deutlich vereinfachen würde.
Dann müsstes du einfach nur den TableHeader und danach die Table adden um das zu erreichen.

Java:
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);

JPanel wrapper = new JPanel();
wrapper.setLayout(new BoxLayout(wrapper, BoxLayout.PAGE_AXIS));

JLabel lblHead = new JLabel("Davor");
JLabel lblSub   = new JLabel("Danach");

String[] col = {"Name", "Anzahl"};

Object[][] data = { {"Brot", 20"}, {"Apfel", 6}, {"Käse", 3} };

JTable table = new JTable(new DefaultTableModel(data, col));

wrapper.add(lblHead);
wrapper.add(table.getTableHeader());
wrapper.add(table);
wrapper.add(lblSub);

frame.add(wrapper),
frame.pack();
frame.setVisible(true);

Gruß Robert
 

Harry Kane

Top Contributor
Wenn nicht dann musst du ja auch kein ScrollPane implementieren, was die ganze Geschichte deutlich vereinfachen würde.
Dann müsstes du einfach nur den TableHeader und danach die Table adden um das zu erreichen.
Aha. Wenn ich mich zwei zwei Komponenten (header und table) rumschlagen muss anstatt nur mit einer (JScrollPane), vereinfacht sich das ganze?
@TE:
auf dem Panel pnlAuswerten sitzen dann die Panel mit den Tabellen und die Label mit den Fragen untereinander. Nach jedem Label soll eine Table erscheinen. Das sieht jetzt so aus (ich habe erst eine Tabelle gebaut).
Das habe och nicht ganz verstanden. Der Screenshot sieht so aus, als hättest du ein GridLayout, wobei eine Zelle mit der JTable bzw. der JScrollPane belegt ist, die andere mit einem weiteren JPanel, welches die JLabels enthält. Ist diese Vermutung richtig?
 

didi577

Bekanntes Mitglied
Hallo,

die getTableHeader Variante gefällt mir gut. Vielen Dank. Ich habe jetzt noch eine Panel Ebene entfernt und packe Label und Tables auf ein Panel mit Box Layout PAGE AXIS...Danke für die Hilfe
Jetzt müssen auf dem Panel nur noch irgendwie die Labels linksbündig werden? Wie geht das am besten?
upload_2017-1-3_18-58-29.png
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
J Ein mit UI-Designer erstelltes JPanel einblenden Java Basics - Anfänger-Themen 0
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
Zeppi JPanel responsive Grid Java Basics - Anfänger-Themen 0
J JPanel in JScrollPanel Java Basics - Anfänger-Themen 4
Elyt JPanel als HintergrundBild Java Basics - Anfänger-Themen 7
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
O Swing JPanel Java Basics - Anfänger-Themen 4
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
D Animation JPanel Java Basics - Anfänger-Themen 1
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
D Auf angeklicktes JPanel zugreifen Java Basics - Anfänger-Themen 5
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
Y Webinhalt JPanel Java Basics - Anfänger-Themen 6
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
S JPanel variablenabhängig erstellen Java Basics - Anfänger-Themen 13
J Methoden Dinge auf einem JPanel paltzieren Java Basics - Anfänger-Themen 1
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
J Probleme mit eigenem JPanel (IDE Eclipse) Java Basics - Anfänger-Themen 4
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
R Focus auf JPanel im Thread Java Basics - Anfänger-Themen 9
I Problem mit JPanel Java Basics - Anfänger-Themen 0
B JPanel ändert die Hintergrundfarbe nicht Java Basics - Anfänger-Themen 2
F Threads funktionieren auf JPanel nicht Java Basics - Anfänger-Themen 1
C JPanel in MessageDialog Java Basics - Anfänger-Themen 1
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
M Listener einerm JPanel hinzufuegen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
Q JPanel Java Basics - Anfänger-Themen 2
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
N String auf JPanel bewegen Java Basics - Anfänger-Themen 6
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
S Layout mit JPanel in JScrollPanel funktioniert nicht Java Basics - Anfänger-Themen 3
S JPanel drucken -> PrinterException Java Basics - Anfänger-Themen 2
B JPanel -JTable Java Basics - Anfänger-Themen 2
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
L zoomen aus jpanel Java Basics - Anfänger-Themen 7
P Bekomme in meinen JPanel nur eine JComponente angezeigt Java Basics - Anfänger-Themen 7
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Veränderungen am JPanel vom JDialog aus Java Basics - Anfänger-Themen 6
F JPanel zu klein Java Basics - Anfänger-Themen 5
D GUI - Objekte in JPanel nach oben schieben Java Basics - Anfänger-Themen 2
S JPanel wird nicht eingefügt Java Basics - Anfänger-Themen 3
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
Kenan89 JPanel mit JTable Java Basics - Anfänger-Themen 9
I JPanel in JPanel Java Basics - Anfänger-Themen 2
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
J Auf einem JPanel ein JFrame platzieren Java Basics - Anfänger-Themen 10
S JPanel anzeige Java Basics - Anfänger-Themen 2
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
T Zugreifen auf JPanel Java Basics - Anfänger-Themen 4
K JPanel auslagern Java Basics - Anfänger-Themen 9
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
T Tastendruck simulieren in JPanel Java Basics - Anfänger-Themen 3
P JPanel in JTable einfügen Java Basics - Anfänger-Themen 23
E Erste Schritte Objekte werden in JPanel angedockt und maximiert Java Basics - Anfänger-Themen 7
M Componenten auf JPanel anzeigen Java Basics - Anfänger-Themen 2
F JPanel als JPG - weisse Fläche Java Basics - Anfänger-Themen 9
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
M JLabel auf JPanel positionieren Java Basics - Anfänger-Themen 8
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
D JPanel + ein JLabel Java Basics - Anfänger-Themen 8
B JPanel-Oberfläche speichern Java Basics - Anfänger-Themen 9
X JTable in JPanel in JTabbedPane mouseevent von jtable kommt nicht durch Java Basics - Anfänger-Themen 3
P GUI, JPanel Java Basics - Anfänger-Themen 7
H JPanel in andere Klasse übergeben Java Basics - Anfänger-Themen 7
D Grösse eines JPanel hinsichtlich LayoutManager festlegen Java Basics - Anfänger-Themen 4
B JPanel über anderem JPanel Java Basics - Anfänger-Themen 6
F zeichnen in JPanel Java Basics - Anfänger-Themen 7
F Unterschied JPanel und JFrame Java Basics - Anfänger-Themen 5
U JPanel dynamisch gestalten Java Basics - Anfänger-Themen 7
H Zeichnen in JPanel Java Basics - Anfänger-Themen 8
K Auf JPanel Zeichnen Java Basics - Anfänger-Themen 8
C jPanel im jPanel verändern Java Basics - Anfänger-Themen 15
B JPanel nachträglich verändern Java Basics - Anfänger-Themen 20
C JPanel erhält sporadisch keinen Fokus Java Basics - Anfänger-Themen 3
I repaint bei jpanel Java Basics - Anfänger-Themen 10
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben