【发布时间】:2012-08-09 14:52:17
【问题描述】:
我有一个包含一列的 JTable,每个表格单元格的单元格渲染是动态生成的 JPanel,因此每个表格单元格的高度应该根据其 JPanel 不同,我试图在 jpanel 所在的位置更改行高被渲染但它不工作。请告诉我如何在 JTable 中设置不同的 JTable 行高,
这就是我尝试这样做的方式,
private QCellPanel renderer = new QCellPanel();
private QCellPanel editor = new QCellPanel();
@Override
public Object getCellEditorValue() {
return editor.getQuestion();
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
renderer.setQuestion((Qusetion) value);
table.setRowHeight(renderer.getPreferredSize().height);
return renderer;
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
editor.setQuestion((Qusetion) value);
table.setRowHeight(editor.getPreferredSize().height);
return editor;
}
【问题讨论】:
-
面板中有什么?为什么它们的高度不同?
-
强调@Jacob Raihle 已经提到的内容:永远不会在渲染器回调方法中更改目标的状态 - 所有参数都是严格只读的
-
是的,这个面板包含的组件可能有不同的高度。
-
“此面板包含的组件可能具有不同的高度。” 这完全告诉我没有问题还不清楚!跨度>
标签: java swing jtable tablecellrenderer