Ich möchte die Breite erhöhen, die die Tabelle auf Jpanel deckt.Fix die Länge der Java GUI Tabelle
JFrame jf = new JFrame();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setTitle("Person Table");
jf.setSize(1100, 700);
JPanel jp1 = new JPanel();jp1.setBackground(Color.green);
JPanel jp2 = new JPanel(); jp2.setBackground(Color.red);
jp1.setSize(1100, 400);
jp2.setSize(980, 200);
JTable jt = new JTable(data,columnNames); jt.setSize(900, 350);
jt.setBackground(Color.ORANGE);
// Add table to JScrollpane
JScrollPane sp = new JScrollPane(jt); sp.setSize(1000, 380);
sp.setBackground(Color.CYAN);
jp1.add(sp);
jf.add(jp1);
jf.add(jp2);
jf.setVisible(true);
Dies ist die Ausgabe
Ich habe bemerkt, dass, wenn ich Scroll nicht der Spaltenname steigt verschwindet und Größe schwenken ..
Aber Ich möchte auch, dass der Spaltenname erscheint.
Verwenden Sie einen LayoutManager wie 'MigLayout'? Dies vereinfacht normalerweise Dinge, siehe hier: http://StackOverflow.com/a/38457852/1368690 – hamena314
Ihre Variablennamen sind schrecklich. Macht Ihren Code sehr schwer zu lesen. – Michael
JFrames sind standardmäßig auf BorderLayout festgelegt. Stellen Sie daher beim Hinzufügen von Komponenten zu einem JFrame sicher, dass Sie eine BorderLayout-Position festlegen, z. BorderLayout.CENTER. Die CENTER-Position ist fast sicher, wo Sie ein Rollfeld mit einem Tisch platzieren möchten. Der Grund für das Verschwinden der Tabellenüberschriften beim Entfernen des Bildlauffensters liegt darin, dass der JTableHeader der Tabelle automatisch als JScrollPanes-Spaltenüberschriftsansicht festgelegt wird, wenn eine Tabelle einem Bildlauffenster hinzugefügt wird. Ohne den Bildlauf müssten Sie den JTableHeader dem Layout selbst hinzufügen. – Michael