2016-12-24 3 views
-1

Я хочу получить координаты (индекс строки и индекс столбца) ячейки JTable, когда ключ освобождается во время редактирования этой ячейки. Я пытаюсь сделать это следующим образом:Позиция ячейки редактируется в JTable

@Override 
public void keyReleased(KeyEvent released) { 
    JTable tbl = (JTable)(released.getSource()); 
    if (tbl.getCellEditor() != null) 
     System.out.println(tbl.getSelectedRow()+","+tbl.getSelectedColumn()); 
} 

Но это не возвращает позицию (индекс строки и индекс столбца) редактируемой ячейки. Пожалуйста помоги.

+0

Это странный запрос и предлагает, по крайней мере, для меня, что вы можете задавать [XY Problem] (http://mywiki.wooledge.org/XyProblem), где вы спрашиваете, как решить конкретную проблему с кодом, когда лучшим решением может быть использование совершенно другого подхода. Подумайте, расскажите нам общую проблему, которую вы пытаетесь решить, а не как пытаетесь ее решить. Также подумайте о создании и публикации действительного [mcve]. –

+1

Некоторые проблемы приходят на ум, в том числе - зачем использовать KeyListener в редакторе ячеек JTable? Как правило, гораздо лучшие способы получить эту информацию. Другой - вы уверены, что источником KeyListener является JTable, а не объект редактора? –

ответ

2

, когда ключ освобождается во время редактирования этой ячейки.

Не имеет смысла. Редактор фокусируется при редактировании ячейки. Также пользователь может использовать мышь, чтобы поместить ячейку в режим редактирования.

Если вы хотите знать, когда клетка начинает редактирования вы можете добавить PropertyChangeListener к JTable:

// 
// 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...() методы, чтобы получить строку/столбец.

+0

Порядочный ответ для не столь достойного вопроса. –

Смежные вопросы