Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JTable单元格中检索数据,而不是从表模型中检索数据?_Java_Swing_Jtable_Renderer - Fatal编程技术网

Java 如何从JTable单元格中检索数据,而不是从表模型中检索数据?

Java 如何从JTable单元格中检索数据,而不是从表模型中检索数据?,java,swing,jtable,renderer,Java,Swing,Jtable,Renderer,我有一个可以改变JTable单元格值的渲染器 @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { String label = value.toString(); if(label.equals("-") label = "er

我有一个可以改变JTable单元格值的渲染器

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    String label = value.toString();
    if(label.equals("-")
        label = "error";
    setValue(label);

    return this;
}
在表的数据模型中,第1行第2列的数据为“-”
在JTable GUI中,第1行第2列的数据为“错误”

此代码打印数据模型中的值:“-”


有没有简单的方法来检索值“error”?

我假设渲染器扩展了
JLabel

((JLabel)table.getCellRenderer(row, column)
.getTableCellRendererComponent(pass all the params here)).getText();

我有一个改变JTable单元格值的渲染器在XxxRenderer中不要这样做,这是XxxTableModel的工作,更好而且没有任何副作用来实现这个逻辑(在执行之前)填充代码,将数据保存到XxxTableModel,在JTables视图上的每个鼠标和按键事件中调用XxxRenderer,rest btw:幸运的是,上面的代码段没有像您描述的那样糟糕:-)假设包含的类扩展了DefaultTableCellRenderer,它只是将标签的文本设置为值。@mKorbel感谢您指出这一点。我正在重新考虑是否修改表模型或标签的文本。@kleopatra是的,该类扩展了DefaultTableCellRenderer@kleopatra谢谢:)这只是一个基于常见实践的猜测。这里的问题是:在GetTableCellRenderComponent()中,我们需要先传递参数“value”。这就是我们正在寻找的价值。所以这对我不起作用。
((JLabel)table.getCellRenderer(row, column)
.getTableCellRendererComponent(pass all the params here)).getText();