Подтвердить что ты не робот

Определите, какая JTable Cell нажата

Когда пользователь нажимает на ячейку на JTable, как мне определить строку и столбец щелкнутой ячейки? Как я могу показать эту информацию в JLabel?

4b9b3361

Ответ 1

Существующий ответ работает, но есть альтернативный метод, который может работать лучше, если вы не разрешаете выбор ячейки. Внутри MouseListener сделайте следующее:

public void mouseClicked(java.awt.event.MouseEvent event) {
    int row = theTable.rowAtPoint(event.getPoint());
    int col = theTable.columnAtPoint(event.getPoint());
    // ...

Ответ 2

Вы можете использовать следующие методы в JTable для извлечения строки и столбца выбранной ячейки:

int rowIndex = table.getSelectedRow();
int colIndex = table.getSelectedColumn();

И добавьте SelectionListener в таблицу, чтобы поймать событие, когда выбрана таблица.

Ответ 3

Он работает для меня!!!

jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
 public void mouseClicked(java.awt.event.MouseEvent evt) {
    int row = jTable1.rowAtPoint(evt.getPoint());
    int col = jTable1.columnAtPoint(evt.getPoint());
    if (row >= 0 && col >= 0) {


    }
 }
});

Ответ 4

Вы пробовали addMouseListener()? Надеюсь, вы используете Swing JTable.

Ответ 5

Я обнаружил, что когда столбцы скрыты/переупорядочены columnAtPoint возвращает индекс видимого столбца, который мне не нужен. Код, который работал у меня,

int row = theTable.convertRowIndexToModel(theTable.rowAtPoint(event.getPoint()));
int col = theTable.convertColumnIndexToModel(theTable.columnAtPoint(event.getPoint()));