2015-06-05 3 views
2

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

table_1.addMouseListener(new MouseAdapter() { 
     public void mousePressed(MouseEvent me) { 
      JTable table = (JTable) me.getSource(); 
      Point p = me.getPoint(); 
      int row = table.rowAtPoint(p); 
      if (me.getClickCount() == 2) { 
       textfield.settext(???????????); 
      } 
     } 
    }); 

я понимаю, как это работает:

int row = table.rowAtPoint(p); 
int column = table.columnAtPoint(p); 
textfield.settext(table_1.getValueAt(row, column)); 

ответ

3
Jtable table = (JTable)e.getsource(); 
int row = table.getSelectedRow(); 
int column = table.getSelectedColumn(); 
ObjectType o = (ObjectType)target.getValueAt(row, column)); 

Сделайте это. Получит значение в JTable на основе выбранной строки и столбца, а затем отобразит возвращаемое значение в ваш тип объекта в таблице и вернет значение в столбце row. Это внутри вашего слушателя.

Показанный на подобный вопрос Possible Dup?

2

Вы можете получить значение таблицы по с помощью:

table.getModel().getValueAt(row, col); 

где

  • row - строка, значение которого должно быть запрошен
  • col - столбец, значение которого должно быть запрошен
  • table - ваше имя объекта (класс jTable)

Примечание: Колонка указанный в порядке отображения табличного представления, а не в порядке столбцов TableModel. Это важное различие , поскольку, поскольку пользователь переупорядочивает столбцы в таблице, , столбец с заданным индексом в представлении изменится. Тем временем действия пользователя никогда не влияют на упорядочение столбцов модели.

Кроме того, я рекомендую читать this documentation.

2

Попробуйте написать что-то вроде этого:

table.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(final MouseEvent e) { if (e.getClickCount() == 1) { final JTable jTable= (JTable)e.getSource(); final int row = jTable.getSelectedRow(); final int column = jTable.getSelectedColumn(); final String valueInCell = (String)jTable.getValueAt(row, column); textfield.setText(valueInCell); } }

+0

Источник http://stackoverflow.com/questions/5488023/how-to-get-cell-value -of-JTable-зависимости-на-какой-строки-это щелчок – Adam

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