Java jTable列未调整大小以适应应用程序启动时的内容

时间:2018-10-20 18:06:49

标签: java swing jtable

基于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();

    }

1 个答案:

答案 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后执行。