Ich bin an einer Tabelle dir mir zuviel Platz vertikal reserviert, nach den acht Zeilen sollte eigentlich Schluss sein:
Leider hab ich im Moment kein Ahnung wieso.
Dazu mein Code:
// Erzeuge Tabelle mit einem TableModel
jtProduktnamen = new JTable(verwProduktnamen);
jtProduktnamen.addMouseListener(myMouseListener);
// Titel fuer beschriftung
jtProduktnamen.getTableHeader().setFont(new Font(Font.SANS_SERIF, Font.BOLD, 14));
jtProduktnamen.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
col = jtProduktnamen.getColumnModel().getColumn(0);
col.setPreferredWidth(100);
col = jtProduktnamen.getColumnModel().getColumn(1);
col.setPreferredWidth(350);
// Groesse der Spalten bestimmen
jtProduktnamen.setRowHeight(30);
jtProduktnamen.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
scpProduktTabelle = new JScrollPane(jtProduktnamen);
}```
Vielen Dank schonmal für die Hilfe
Sieht aber komisch aus. Deine JTable müsste sich dann, wenn nichts weiter modifiziert wurde (Border, oder eingebettetes JPanel) ganz rechts am Rand befinden.
Das Ganze sieht mir aber irgendwie nach “NullLayout” aus.
Das JPanel mit dein Eingaben Links und der Tabelle sind in einem Cardlayout.
Darum ist sie nicht rechts oben, sondern nur innerhalb dieses Panels rechts oben. Das passt so schon…
Nur die höhe find ich unschön, da darunter nun noch ein Bild müsste… Druch das die Tabelle nun so hoch ist, passt dieses nicht mehr in den Bildschirm und es gibt eine ScrollBar rechts.
So, ich habe nun eine Lösung gefunden die für mich passt. Ich packe nun die JTable in ein Panel mit BoxLayout und fülle den Platz den ich nicht brauche.
// Erzeuge Tabelle mit einem TableModel
jtProduktnamen = new JTable(verwProduktnamen);
jtProduktnamen.addMouseListener(myMouseListener);
// Titel fuer beschriftung
jtProduktnamen.getTableHeader().setFont(new Font(Font.SANS_SERIF, Font.BOLD, 14));
jtProduktnamen.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
col = jtProduktnamen.getColumnModel().getColumn(0);
col.setPreferredWidth(100);
col = jtProduktnamen.getColumnModel().getColumn(1);
col.setPreferredWidth(350);
// Groesse der Spalten bestimmen
jtProduktnamen.setRowHeight(30);
jtProduktnamen.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12));
pnlProduktTabelle = new JPanel();
pnlProduktTabelle.setLayout(new BoxLayout(pnlProduktTabelle, BoxLayout.PAGE_AXIS));
scpProduktTabelle = new JScrollPane(jtProduktnamen);
scpProduktTabelle.setPreferredSize(new Dimension(452, 100));
pnlProduktTabelle.add(scpProduktTabelle);
pnlProduktTabelle.add(Box.createVerticalGlue());
}```