Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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 - Fatal编程技术网

Java 正在JTable中编辑的单元格的位置

Java 正在JTable中编辑的单元格的位置,java,swing,jtable,Java,Swing,Jtable,我想获得JTable单元格的坐标(行索引和列索引),在编辑该单元格时释放键。我正试图这样做: @Override public void keyReleased(KeyEvent released) { JTable tbl = (JTable)(released.getSource()); if (tbl.getCellEditor() != null) System.out.println(tbl.getSelectedRow()+","+tbl.getSel

我想获得
JTable
单元格的坐标(行索引和列索引),在编辑该单元格时释放键。我正试图这样做:

@Override
public void keyReleased(KeyEvent released) {
    JTable tbl = (JTable)(released.getSource());
    if (tbl.getCellEditor() != null)
        System.out.println(tbl.getSelectedRow()+","+tbl.getSelectedColumn());
}
但这不会返回正在编辑的单元格的位置(行索引和列索引)。请帮忙

在编辑该单元格时释放键时

没有道理。编辑单元格时,编辑器具有焦点。用户还可以使用鼠标将单元格置于编辑模式

如果您想知道单元格何时开始编辑,可以在
JTable
中添加
PropertyChangeListener

//
//  Implement the PropertyChangeListener interface
//
    @Override
    public void propertyChange(PropertyChangeEvent e)
    {
        //  A cell has started/stopped editing

        if ("tableCellEditor".equals(e.getPropertyName()))
        {
            if (table.isEditing())
                // code for editing started;
            else
                // code for editing stopped;
        }
    }

然后,您只需使用
getSelected…()
方法来获取行/列。

这是一个奇怪的请求,至少对我来说,您可能会问一个问题,当最佳解决方案可能是使用完全不同的方法时,您会问如何解决特定的代码问题。考虑告诉我们你想解决的总体问题,而不是你现在试图解决的问题。还要考虑创建和发布一个有效的几个问题,包括——为什么在一个JTabl单元编辑器中使用密钥侦听器?通常有更好的方法来获取这些信息。另一个--您确定KeyListener的源是JTable而不是editor对象吗?对于一个不太体面的问题,这是一个体面的答案。