/ / JTable ändert die Größe der letzten Spalte nicht automatisch - Java, Swing, Benutzeroberfläche, JTABLE

JTable passt die letzte Spalte nicht automatisch an - Java, Swing, Benutzerschnittstelle, Jtable

Ich habe eine JTable, die sich in einem JPanel befindetDieses wird dann in einen JFrame mit einem anderen JPanel mit einem ScrollPane eingefügt. Die allgemeine Idee kann unten gesehen werden, wenn die Erklärung verwirrend ist. Ich habe mein JTable so eingestellt, dass es die Größe der letzten Spalte automatisch ändert, aber niemals die Größe. Worin besteht das Problem?

JFrame -> JPanel -> JTable
-> JPanel -> Bildlauffenster

Mein Code:
this bezieht sich auf meine Klasse, die sich erstreckt JFrame

this.setLayout(new BorderLayout());

JTextArea log = new JTextArea(20, 50);
log.setEditable(false);
JScrollPane logScrollPane = new JScrollPane(log);

String[] configRow = {"Config File", "Not Loaded"};
String[] logRow = {"Log File" , "Not Loaded"};
DefaultTableModel dtm = new DefaultTableModel();
dtm.addColumn("");
dtm.addColumn("");
dtm.addRow(configRow);
dtm.addRow(logRow);

JTable status = new JTable(dtm);
status.setTableHeader(null);
status.setShowGrid(false);
status.setEnabled(false);
status.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);

JPanel tablePanel = new JPanel();
tablePanel.setLayout(new BorderLayout());
tablePanel.add(status, BorderLayout.LINE_START);

JPanel logPanel = new JPanel();
logPanel.add(logScrollPane);

this.add(tablePanel, BorderLayout.NORTH);
this.add(logPanel, BorderLayout.SOUTH);

Antworten:

2 für die Antwort № 1

Ihre JTable muss sich in einem JScrollPane befinden, damit die Größenänderung ordnungsgemäß funktioniert. Sie platzieren die JTable direkt auf einem JPanel.

tablePanel.add(new JScrollPane(status), BorderLayout.LINE_START):