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));

Что-то вроде этого. Возможно, более общее решение, но это должно работать.

Другие вопросы по тегам