【问题标题】:Java Swing: How to bind a JLabel's text to a column in the selected row of a JTable?Java Swing:如何将 JLabel 的文本绑定到 JTable 的选定行中的列?
【发布时间】:2009-11-25 13:40:27
【问题描述】:

我正在使用 Netbeans 并试图找到一种方法让 IDE 为我自动生成代码。我记得之前将 JLabel 的文本绑定到 JTable 的选定行中的列,但在这种情况下,JTable 的值来自实体管理器,这非常容易。我想知道即使 JTable 没有绑定到数据库,是否有办法做到这一点。

另外,还有什么办法可以做到呢?我正在考虑实现一个 ListSelectionListener,每当生成事件时,只需更新标签的文本。

【问题讨论】:

    标签: java user-interface swing jtable beans-binding


    【解决方案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));
    

    类似的东西。可能是更通用的解决方案,但这应该可行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 2023-03-30
      • 2010-10-31
      • 2011-08-28
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多