Java Swing: Как связать текст JLabel со столбцом в выбранной строке JTable?
Я использую Netbeans и пытаюсь найти способ для IDE автоматически генерировать код для меня. Я помню, как ранее связывал текст JLabel со столбцом в выбранной строке JTable, но в этом случае значения JTable были от менеджера сущностей, и это было очень легко. Мне было интересно, если есть способ сделать это, даже если JTable не привязан к базе данных.
Кроме того, как еще можно это сделать? Я думал о реализации ListSelectionListener, и всякий раз, когда генерируется событие, просто обновляйте текст метки.
1 ответ
Решение
Я думаю, что ваше второе решение - лучший способ сделать это, что-то вроде этого:
public class LabelSyncer implements ListSelectionListener {
private JLabel toSync;
private int columnIndex;
public LabelSyncer(JLabel toSync, int columnIndex) {
}
public void valueChanged(ListSelectionEvent e) {
JTable table = (JTable) e.getSource();
int row = table.getSelectedRow();
toSync.setText(table.getModel().getValueAt(row, columnIndex).toString());
}
}
а потом
table.getSelectionModel().addListSelectionListener(new LabelSyncer(label, columnIndex));
Что-то вроде этого. Возможно, более общее решение, но это должно работать.