![](/img/trans.png)
[英]How do I create a Java Swing JTable with header as first column, not as first row?
[英]SWING JTable: How do I make each row as high as it's tallest object?
我有一張桌子,其中呈現了一些對象,它們的大小是不固定的(屬性列表)。 我希望每一行都與它的最高對象一樣高,我很想這樣做。 我考慮過要做這樣的事情(見下文),但是我敢肯定還有更好的事情。
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected,
boolean hasFocus, int row,
int column)
{
/*....*/
this.setListData((Object[])value);
int height = new Double(getPreferredSize().getHeight()).intValue();
if (table.getRowHeight(row) < height)
table.setRowHeight(row, height);
/*....*/
return this;
}
渲染器中不應包含類似的代碼。 相反,當您將數據加載到模型中時,請執行以下操作:
private void updateRowHeights()
{
try
{
for (int row = 0; row < table.getRowCount(); row++)
{
int rowHeight = table.getRowHeight();
for (int column = 0; column < table.getColumnCount(); column++)
{
Component comp = table.prepareRenderer(table.getCellRenderer(row, column), row, column);
rowHeight = Math.max(rowHeight, comp.getPreferredSize().height);
}
table.setRowHeight(row, rowHeight);
}
}
catch(ClassCastException e) {}
}
我會堅持使用您的解決方案。 我認為沒有比這更簡單的方法了。 不管您要檢查每個單元格的高度如何,因此在渲染每個單元格時也可以這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.