Когда пользователь нажимает на ячейку на JTable
, как мне определить строку и столбец щелкнутой ячейки? Как я могу показать эту информацию в JLabel
?
Определите, какая JTable Cell нажата
Ответ 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()));