I have a JTable with some fields with long text and some with little text.
By default, this is how it looks:
Notice how the "Name" and "Title" rows are not shortened.
I would like to know two things:
- How to manually set the width of Headers(Such as Name, Title, Surname)
- How to automatically resize all of them depending on the text.
Here is the code:
String[] columnNames = {"Name", "Title", "Surn开发者_运维技巧ame", "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));
I have looked at the Swing Tutorials but I either must have missed something or it isn't there.
I think that by defalut is there 80pixels, but you can change that with follows, for example ...
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
EDIT
to your second question is better look here, please there are lots of usefull examples about TableColumn
2.How to automatically resize all of them depending on the text.
Check out the Table Column Adjuster.
精彩评论