【问题标题】:Width of a TableColumn in a JTableJTable中TableColumn的宽度
【发布时间】:2012-09-15 01:31:17
【问题描述】:

在我的应用程序中,我使用带有一些可调整大小的列的JTable。关闭时,我希望应用程序存储显示的列的大小。

我的问题是,即使我手动调整列大小,getWidth() 函数总是返回 75(默认值),无论列的实际大小如何。如果我用调试器查看TableColumn 对象,它的最小尺寸是15,它的最大尺寸是2147483648,它的首选尺寸是75,它的尺寸是75。但它显示的尺寸显然不是75!

如何获得列的实际大小?

获取宽度的代码:

        for(i=0;i<TableOpérations.getColumnCount();i++){
              tc=TableOpérations.getColumn(TableOpérations.getColumnName(i));

              width=tc.getWidth();
    }

【问题讨论】:

  • 你有没有使用GUI Builer,否则没有问题
  • 请出示 SSCCE,以便我们重现您真正所做的事情 :-)

标签: java swing jtable tablecolumn


【解决方案1】:

我看不到您所看到的行为。每次按下按钮时,以下程序都会显示正确的宽度。您必须显示另一个表格或表格列模型的列宽。

public class TableColumnTest extends JFrame {

    private JTable table;

    public TableColumnTest() {
        JPanel p = new JPanel();
        p.setLayout(new BorderLayout());
        table = new JTable(5, 4);
        p.add(new JScrollPane(table), BorderLayout.CENTER);
        JButton b = new JButton("Test");
        b.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                displayWidths();
            }
        });
        p.add(b, BorderLayout.SOUTH);
        add(p);
        pack();
    }

    private void displayWidths() {
        for (int i = 0; i < table.getColumnCount(); i++) {
            TableColumn column = table.getColumnModel().getColumn(i);
            System.out.println("Width of column " + i + " : " + column.getWidth());
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new TableColumnTest().setVisible(true);
            }
        });
    }
}

【讨论】:

  • 好吧,不。在我的 JInternalFrame 中,我有一个 JScrollPane,其中包含名为“TableOperations”的 JTable。就是这样!
  • 我已经在我的问题中添加了获取宽度的代码(见上文)。
  • 错误在其他地方。按照 Kleopatra 的要求提供 SSCCE。我怀疑您有两个具有相同变量名的表(一个本地变量和一个实例变量)。但这只能通过查看代码来确认。
猜你喜欢
  • 1970-01-01
  • 2011-10-25
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 2015-05-24
  • 1970-01-01
  • 2021-05-09
相关资源
最近更新 更多