大家,早安。我有一个 Multilinecellrenenderer,它根据单元格的内容更改 jtable 行的高度。
public Component getTableCellRendererComponent(JTable table, Object
value, boolean isSelected, boolean hasFocus, int row, int column) {
setText(value.toString());//or something in value, like value.getNote()...
if (isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setSize(table.getColumnModel().getColumn(column).getWidth(),
getPreferredSize().height);
if (table.getRowHeight(row) <= getPreferredSize().height) {
table.setRowHeight(row, getPreferredSize().height);
}
return this;
}
我知道在渲染器中修改 jtable 会使其在无限循环中运行,这发生在我使用日志语句验证的代码中。我也知道我可以在添加模型内容的过程中修改行高,并且我已经尝试了我所知道的一切,但我无法在渲染器之外设置行的高度。任何人都可以帮助我如何table.setRowHeight(int,int)
在细胞渲染器之外打电话。
我正在使用以下语句动态添加模型的内容
for(ProductRow object: data){
model.addRow(new Object[]{object.getProductNumber(),object.getDescription(),
object.getLastTouchedOn(),object.getLastTouchedBy()});
}
我只是不知道如何获取当前行号和首选高度。请帮我。谢谢