gpt4 book ai didi

java - 将 JScrollPane 组件添加到 JTable 列

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:01:16 24 4
gpt4 key购买 nike

我正在尝试向我的 JTable 中的特定列添加滚动功能。我已经实现了一个自定义 TableCellRenderer 组件,我可以很好地看到表格内的滚动 Pane ,但我无法滚动它。我也尝试过实现 TableCellEditor,但没有成功。

    public Component getTableCellEditorComponent(JTable arg0, Object arg1,
boolean arg2, int arg3, int arg4) {
return scrollPane;
}

有没有人知道如何使那些包含 scrollPane 的单元格可滚动?

最佳答案

使用 TableCellRenderer 不可能添加任何滚动行为,因为它不接收任何事件并且只绘制组件。有可能 - 但是 - 通过使用自定义 TableCellEditor 和 getTableCellEditor 来完成此操作:

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;
}

此外,您必须控制 CellEditor 的编辑行为。要使单元格始终可编辑和可滚动,isCellEditable 应如下所示:

public boolean isCellEditable(EventObject anEvent) {
return true;
}

不过,就我个人而言,我发现此解决方案比任何其他解决方案都更像是一种 hack。此外,这应该仅用于测试。在我看来,您确实必须实现更好的编辑行为。

关于java - 将 JScrollPane 组件添加到 JTable 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6388453/

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