我有一个 JTable,其中一些字段的文本很长,一些字段的文本很少。
默认情况下,它是这样的:
请注意“姓名”和“标题”行没有被缩短。
我想知道两件事:
- 如何手动设置标题的宽度(如姓名、职务、姓氏)
- 如何根据文本自动调整它们的大小。
代码如下:
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/