隨筆-8  評論-14  文章-0  trackbacks-0

          想要定義JList的形式的要通過實(shí)現(xiàn)接口ListCellRenderer來設(shè)置,使用方法如下:
          首先,定義一個類實(shí)現(xiàn)接口ListCellRenderer的方法 

             

          getListCellRendererComponent(JList list, 
                                      Object value, 
                                      
          int index, 
                                      
          boolean isSelected, 
                                      
          boolean cellHasFocus)

          例子:
           1 /**
           2 * 用于處理JList的形式
           3 @author Lonsy
           4 */
           5 public class CheckBoxItem implements ListCellRenderer 
           6 
           7     /**
           8     * 定義其形式為CheckBox
           9     */
          10     private JCheckBox jcb;
          11 
          12     /**
          13     * 構(gòu)造函數(shù)
          14     */
          15     public CheckBoxItem() {
          16         jcb = new JCheckBox();
          17     }
          18 
          19     /**
          20     * 實(shí)現(xiàn)ListCellRenderer的getListCellRendererComponent接口
          21     */
          22     public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
          23         jcb.setBackground(Color.white);        
          24         jcb.setText(value.toString());
          25         jcb.setSelected(isSelected); 
          26         return jcb;
          27     }
          28 }


          在這里,將其選項定義為JCheckBox形式。
          然后,在需要使用此形式的地方使用setCellRenderer()方法設(shè)置,如下

          1     JList jl = new JList();
          2     jl.setCellRenderer(new CheckBoxItem());

          這樣就可以了。
          當(dāng)然,通過ListCellRenderer可以設(shè)置更多的JList相關(guān)屬性,詳細(xì)參閱Java Doc
          posted on 2008-07-25 15:33 Lonsy 閱讀(1236) 評論(4)  編輯  收藏 所屬分類: Analysis

          評論:
          # re: 制定JList的選項為JCheckBox 2008-08-06 23:35 | 評論
          名與內(nèi)容不符, 該代碼無法取消JCheckBox 的選擇,只是做了現(xiàn)實(shí)而已  回復(fù)  更多評論
            
          # re: 制定JList的選項為JCheckBox 2008-08-06 23:38 | Lonsy
          @評論
          可以的,這是我一個項目的某個細(xì)節(jié)。
          25 jcb.setSelected(isSelected);
          用這句話實(shí)現(xiàn)的選擇和取消選擇的。
          ??  回復(fù)  更多評論
            
          # re: 制定JList的選項為JCheckBox[未登錄] 2008-11-22 17:12 | Robert
          但是怎樣知道選選擇了那一項呢??我是個初學(xué)者,能說明一下嗎
            回復(fù)  更多評論
            
          # re: 制定JList的選項為JCheckBox[未登錄] 2008-11-23 12:20 | lonsy
          @Robert
          getSelectedValue()
          這個只是指定它的UI而已,獲取選擇的項還是原來的方法。  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 吉安县| 北海市| 宜黄县| 鸡泽县| 安阳市| 柞水县| 苏尼特右旗| 克东县| 盖州市| 岢岚县| 郑州市| 余姚市| 龙岩市| 和龙市| 涟水县| 巢湖市| 库尔勒市| 彰化市| 大渡口区| 海盐县| 通江县| 邳州市| 托克逊县| 广饶县| 清涧县| 肥乡县| 定南县| 牟定县| 合作市| 凤凰县| 紫阳县| 比如县| 大姚县| 彝良县| 平利县| 合江县| 平远县| 泰和县| 桐乡市| 达尔| 灌阳县|