Lit*_*ium 3 java swing jtable jscrollpane
我正在尝试将滚动功能添加到JTable中的某个列.我已经实现了一个自定义的TableCellRenderer组件,我可以看到表中的滚动窗格很好,但我无法滚动它.我也尝试过实现TableCellEditor并没有任何运气.
public Component getTableCellEditorComponent(JTable arg0, Object arg1,
boolean arg2, int arg3, int arg4) {
return scrollPane;
}
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法如何使包含scrollPane的单元格可滚动?
使用TableCellRenderer时,无法添加任何滚动行为,因为它不会接收任何事件并仅绘制组件.但是,有可能通过使用带有getTableCellEditor的自定义TableCellEditor来实现此目的:
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
JTextArea area = new JTextArea();
area.setLineWrap(true);
area.setText((String) value);
JScrollPane pane = new JScrollPane(area);
return pane;
}
Run Code Online (Sandbox Code Playgroud)
此外,您必须控制CellEditor的编辑行为.为了使单元格始终可编辑和可滚动,isCellEditable应如下所示:
public boolean isCellEditable(EventObject anEvent) {
return true;
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,我觉得这个解决方案更像是一个黑客而不是任何东西.此外,这应该仅用于测试.在我看来,你真的必须实现更好的编辑行为.
| 归档时间: |
|
| 查看次数: |
2261 次 |
| 最近记录: |