为了让它适用于我的桌子,我setBounds
在其中覆盖并设置了首选宽度:
@Override
public void setBounds(int x, int y, int width, int height)
{
super.setBounds(x, y, width, height);
setPreferredColumnWidths(new double[] { 0.4, 0.4, 0.1, 0.1 });
}
我从这篇文章中得到了 setPreferredColumnWidths 的实现。
protected void setPreferredColumnWidths(double[] percentages)
{
Dimension tableDim = getPreferredSize();
double total = 0;
for (int i = 0; i < getColumnModel().getColumnCount(); i++)
{
total += percentages[i];
}
for (int i = 0; i < getColumnModel().getColumnCount(); i++)
{
TableColumn column = getColumnModel().getColumn(i);
column.setPreferredWidth(
(int)(tableDim.width * (percentages[i] / total)));
}
}