2009-11-25 30 views
1

我正在使用Netbeans,並試圖找到一種方法讓IDE爲我自動生成代碼。我記得之前將JLabel的文本綁定到JTable所選行的列中,但在這種情況下,JTable的值來自實體管理器,而且非常簡單。我想知道是否有辦法做到這一點,即使JTable沒有綁定到數據庫。Java Swing:如何將JLabel的文本綁定到JTable的選定行中的列?

另外,還有什麼人可以做到這一點?我正在考慮實現ListSelectionListener,並且每當生成事件時,只需更新標籤的文本。

回答

2

我認爲你的第二個解決方案是做最好的辦法,是這樣的:

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

這樣的事情。可能是更通用的解決方案,但這應該起作用。

相關問題