gpt4 book ai didi

java - SWING JTable : How do I make each row as high as it's tallest object?

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:48 24 4
gpt4 key购买 nike

我有一个表,其中渲染了一些对象并且具有非固定大小(属性列表)。我希望每一行的高度与它最高的物体一样高,我想这样做。我想过做这样的事情(见下文),但我确信有更好的事情..

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) {}
}

关于java - SWING JTable : How do I make each row as high as it's tallest object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4553993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com