开发者

Java Swing: How to bind a JLabel's text to a column in the selected row of a JTable?

开发者 https://www.devze.com 2022-12-12 06:15 出处:网络
I am using Netbeans and am trying to find a way for the IDE to auto-generate the code for me. I remember binding a JLabel\'s text to a column in the selected row of the JTable before, but in that case

I am using Netbeans and am trying to find a way for the IDE to auto-generate the code for me. I remember binding a JLabel's text to a column in the selected row of the JTable before, but in that case, the 开发者_JS百科JTable's values were from an entity manager, and it was very easy. I was wondering if there is a way to do it even if the JTable is not tied to a database.

Also, how else could one do it? I was thinking of implementing a ListSelectionListener, and whenever an event got generated, just update the text of the label.


I think your second solution is best way to do it, something like this:

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

and then

table.getSelectionModel().addListSelectionListener(new LabelSyncer(label, columnIndex));

Something like this. Probably a more generic solution, but this should work.

0

精彩评论

暂无评论...
验证码 换一张
取 消