java - JTable 不会自动调整最后一列的大小

标签 java swing user-interface jtable

我有一个 JTable,它放置在 JPanel 内,然后放置在 JFrame 中,该 JFrame 具有另一个 JPanel,该 JPanel 具有 ScrollPane。如果解释困惑的话可以看下面的总体思路。我已将 JTable 设置为自动调整最后一列的大小,但它从不自动调整大小。有什么问题吗?

JFrame -> JPanel -> JTable
-> JPanel -> 滚动 Pane

我的代码:
this 指的是我的类,它扩展了 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);

最佳答案

您的 JTable 必须放置在 JScrollPane 中才能正确调整大小。您将 JTable 直接放置在 JPanel 上。

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

关于java - JTable 不会自动调整最后一列的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5809772/

相关文章:

java - 将数据加载到组合框

java - 我可以分层 JavaFX 控件吗?

java - 光标箭头后的类似工具提示的消息

java - 将压缩目录输出到 ByteArrayOutputStream

java - 为什么这个 GUI 应用程序不向我显示图像?

java - Swing组件占用大量内存

java - 无法阻止 JTextField 获取默认焦点

c# - 查询的技术和模式?

Java 继承和泛型

java - 在构造函数中创建对象与在声明中创建对象之间的区别