在netbeans和java swing中开发应用程序 我想在jtable中更改列的宽度 调整单元格中的数据长度 谷歌搜索我偶然发现了Binklye的博客 在以下链接
http://binkley.blogspot.com/2006/01/getting-jtable-columns-widths-to-fit.html
以下是代码段
{
final TableCellRenderer renderer = getTableHeader()
.getDefaultRenderer();
for (int i = 0; i < getColumnCount(); ++i)
getColumnModel().getColumn(i).setPreferredWidth(
renderer.getTableCellRendererComponent(this,
getModel().getColumnName(i), false, false, 0, i)
.getPreferredSize().width);
}
public Component prepareRenderer(final TableCellRenderer renderer,
final int row, final int column) {
final Component prepareRenderer = super
.prepareRenderer(renderer, row, column);
final TableColumn tableColumn = getColumnModel().getColumn(column);
tableColumn.setPreferredWidth(max(
prepareRenderer.getPreferredSize().width,
tableColumn.getPreferredWidth()));
return prepareRenderer;
}
希望有人帮助实施代码。
另一方面,如果有另一个消息,很高兴看看它。
答案 0 :(得分:2)
答案 1 :(得分:0)
试试这个:
jtable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
您可以编写自己的自定义方法,在添加行或删除行时会触发该方法。 示例代码:
public static void resizeRow(JTable table) {
TableColumnModel columnModel = table.getColumnModel();
for (int i = 0; i < columnModel.getColumnCount(); i++) {
TableColumn column = columnModel.getColumn(i);
column.setPreferredWidth(/*your logic of setting width*/);
}
}