gpt4 book ai didi

java - 从 JTable CellEditor 中删除 HTML

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:19 26 4
gpt4 key购买 nike

我有一个 JTable 和一些可编辑单元格,它们根据某些业务规则使用非常具体的 HTML 进行动态格式化。

但是,当您编辑这些单元格时,所有 HTML 都位于单元格编辑器中。我只想要 CellEditor 中的纯文本。

我正在尝试对整个表执行此操作。这是我使用的代码。我拼凑了一个扩展的 DefaultCellEditor 但它仍然显示 HTML。我什至没有看到调试器进入 getCellEditorValue() 方法。我该怎么办?

public class MyTable extends JTable
{

public MyTable()
{
MyTable.setCellEditor(new DefaultCellEditor(new JTextField())
{
@Override
public Object getCellEditorValue() {
// get content of textField
String str = (String) super.getCellEditorValue();
if (str == null) {
return null;
}

if (str.length() == 0) {
return null;
}
//remove HTML and return plain text
return Jsoup.parse(str).text();
}
});
}
}

最佳答案

我不确定哪里出了问题;一个complete example可能会有所启发。正常编辑顺序概述 here ,建议您应该创建自己的 renderer and editor :

class MyRenderer extends DefaultTableCellRenderer {…}
class MyEditor extends DefaultCellEditor {…}

并按如下方式应用它们:

table.setDefaultRenderer(String.class, new MyRenderer());
table.setDefaultEditor(String.class, new MyEditor());

确保您的 TableModelgetColumnClass() 返回正确的类型标记。

关于java - 从 JTable CellEditor 中删除 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439289/

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