java - 根据文本大小自动调整 JTable 列的大小

标签 java swing jtable

我有一个 JTable,其中一些字段的文本很长,一些字段的文本很少。

默认情况下,它是这样的:

enter image description here

请注意“姓名”和“标题”行没有被缩短。

我想知道两件事:

  1. 如何手动设置标题的宽度(如姓名、职务、姓氏)
  2. 如何根据文本自动调整它们的大小。

代码如下:

    String[] columnNames = {"Name", "Title", "Surname", "ID"};
    Object[][] testData = {
            {"John", "Mr.", "Doe", "61020384U"},
    };

    nameTable = new JTable(testData, columnNames);
    nameTable.setFont(new Font("Tahoma", Font.PLAIN, 11));
    window.add(new JScrollPane(nameTable));

我看过 Swing Tutorials但我要么一定错过了什么,要么不存在。

最佳答案

我认为默认情况下是 80 像素,但您可以通过以下方式更改它,例如 ...

TableColumnModel tcm = myTable.getColumnModel();
tcm.getColumn(0).setPreferredWidth(100);     //Name
tcm.getColumn(1).setPreferredWidth(40);    //Title
tcm.getColumn(2).setPreferredWidth(400);    //Surname
tcm.getColumn(3).setPreferredWidth(40);    //ID

编辑

你的第二个问题更好看here , 请有很多关于 TableColumn 的有用示例

关于java - 根据文本大小自动调整 JTable 列的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7033502/

相关文章:

java - 使用递归计算序列

java - 如何等待多线程 shell 脚本执行完成在我的 Web 服务中调用?

java - JButton 在 Action 上的平滑移动

java - 是否可以使带有 GridBagLayout 的 JPanel 内的元素从左上角开始?

java - JTable 中 TableColumn 的宽度

java - 看到 InvokingTargetException 异常

java - Betfair 的 Java Streaming API 入门

java - JButton 后台行为未清除

java - JTable/TableModel MVC 实现 [求助]

JAVA jtable传值