基于https://bosmeeuw.wordpress.com/2011/08/07/java-swing-automatically-resize-table-columns-to-their-contents/ 我创建了一个显示表(jTable)的JFrame应用。
在调用initComponents()之后,将从文件自动填充数据。 它只是一个仅显示的应用程序。
应用启动时,它将以默认宽度显示带有数据的列。
当我双击任何一个单元格,然后单击任何其他单元格时,列的大小将按预期调整大小。
我希望应用程序在启动时显示调整大小以适合内容的列。
请帮助。
下面我班的代码部分:
-lopencv_highgui.
jTable声明:
public callA() {
setExtendedState(JFrame.MAXIMIZED_BOTH);
initComponents();
readConnectionsXML();
}
答案 0 :(得分:0)
jTable_ConnectionsDetails.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
ColumnsAutoSizer.sizeColumnsToFit(jTable_ConnectionsDetails);
好的,每次更改数据后,您似乎都会自动调整列的大小。
当我双击任何一个单元格,然后单击任何其他单元格时,列的大小将按预期调整大小。
每次编辑单元格时,都会保存该值并生成TableModelEvent以执行上述代码。
在调用initComponents()之后,将从文件中自动填充数据。
那么您是否验证了上面的侦听器代码已执行?
如果未执行,则需要手动调用ColumnsAutoResizer
方法。
如果执行该命令,则可能是时间问题,因为GUI尚不可见。尝试将代码包装在SwingUtilities.invokeLater(...)
中,以便将代码添加到事件分发线程(EDT)的末尾,并将在可见GUI后执行。