2010-01-29 147 views
0

在Java Swing中,我有一個簡單的表格,其中每行都包含元素名稱和複選框。用戶可以通過單擊相關複選框來選擇任何包含的元素。我希望在表格下面有一個字符串,可以不斷跟蹤所選元素的數量(例如「已選擇3個元素」)。因此,儘快使用檢查或取消檢查元素,字符串會自動更改。可能嗎?我是否需要將事件偵聽器關聯到每個複選框?實時跟蹤字符串中選定項目的數量

+0

@Vijay - 這是一個JTable? – McDowell 2010-01-29 17:34:25

回答

3

是的,這是可能的。但是,您也可以將單個偵聽器與所有複選框相關聯。

JCheckbox check1 = new JCheckbox("First"); 
JCheckbox check2 = new JCheckbox("Second"); 

int numSelected = 0; 
JLabel label = new JLabel("0 items selected"); 

ItemListener itemListener = new ItemListener() { 

    public void itemStateChanged(ItemEvent e) { 

     if (e.getStateChange() == ItemEvent.SELECTED) 
      numSelected++; 

     else 
      numSelected--; 

     label.setText( numSelected + 
         (numSelected == 1) " item" ? " items" + " selected"); 
      // might not have to explicitly re-call label.setText(..) 
    } 
} 

check1.addItemListener(itemListener); 
check2.addItemListener(itemListener);