JTable - выбранное событие выбора строки
У меня есть Jtable, заполненный связанным списком через AbstractTableModel.
Что я хочу сделать, это когда я нажимаю (щелчок левой кнопкой мыши) в строке в JTable, связанный список - это поиск (в этом случае он содержит названия фильмов) и отображает значения в связанном списке в Jtextboxes
Как это сделать?
Вот код
Я предполагаю, что он извлекает данные из выбранной строки в массив, разбивает их и помещает в jtextareas. Как я могу это сделать?
Ответы
Ответ 1
Вот как я это сделал:
table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent event) {
// do some actions here, for example
// print first column value from selected row
System.out.println(table.getValueAt(table.getSelectedRow(), 0).toString());
}
});
Этот код реагирует на щелчок мышью и выбор элементов с клавиатуры.
Ответ 2
Чтобы узнать, какая строка была выбрана, добавьте ListSelectionListener
, как показано в Как использовать таблицы в примере SimpleTableSelectionDemo
. A JList
можно построить непосредственно из связанного списка toArray()
, и вы можете добавить к нему подходящий прослушиватель для деталей.
Ответ 3
Я бы рекомендовал использовать Glazed Lists для этого. Это позволяет легко сопоставить структуру данных с табличной моделью.
Чтобы реагировать на mouseclick на JTable, используйте ActionListener: ActionListener в ячейке JLabel или JTable
Ответ 4
Вы можете использовать событие MouseClicked
:
private void tableMouseClicked(java.awt.event.MouseEvent evt) {
// Do something.
}