<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
    /**
     * <ul>
     * <li>Title:[FileFieldEditor]</li>
     * <li>Description: [JTable可編輯]</li>
     * <li>Copyright 2009 Upengs Co., Ltd.</li>
     * <li>All right reserved.</li>
     * <li>Created by [Huyvanpull] [2012-12-6]</li>
     * <li>Midified by [modifier] [modified time]</li>
     * </ul>
     * @version 1.0 
     */
    @SuppressWarnings("serial")
    public class FileFieldEditor extends JComboBox implements TableCellEditor
    {
       
        /** EventListenerList:保存EventListener 列表的類 */
        private EventListenerList listenerList = new EventListenerList();
       
        /** ChangeEvent用于通知感興趣的參與者事件源中的狀態已發生更改 */
        private ChangeEvent changeEvent = new ChangeEvent(this);
       
        /**
         *<ul>
         *<li>Description:[構造方法]</li>
         *<ul>
         */
        public FileFieldEditor(String[] fileFields)
        {
            super();
            for(String fileField : fileFields)
            {
                this.addItem(fileField);
            }
            // 請求終止編輯操作可以包含單元格的JTable收到,也可以從編輯器組件本身(如這里的JComboBox)獲得
            /*
             * addActionListener(newActionListener(){ publicvoid
             * actionPerformed(ActionEvent e) {
             * System.out.println("ActionListener");
             * //如同stopCellEditing,都是調用fireEditingStopped()方法 fireEditingStopped(); }
             * });
             */
        }
       
        public void addCellEditorListener(CellEditorListener l)
        {
            listenerList.add(CellEditorListener.class, l);
        }
       
        public void removeCellEditorListener(CellEditorListener l)
        {
            listenerList.remove(CellEditorListener.class, l);
        }
       
        private void fireEditingStopped()
        {
            CellEditorListener listener;
            Object[] listeners = listenerList.getListenerList();
            for (int i = 0; i < listeners.length; i++)
            {
                if (listeners[i] == CellEditorListener.class)
                {
                    // 之所以是i+1,是因為一個為CellEditorListener.class(Class對象),
                    // 接著的是一個CellEditorListener的實例
                    listener = (CellEditorListener) listeners[i + 1];
                    // 讓changeEvent去通知編輯器已經結束編輯
                    // 在editingStopped方法中,JTable調用getCellEditorValue()取回單元格的值,
                    // 并且把這個值傳遞給TableValues(TableModel)的setValueAt()
                    listener.editingStopped(changeEvent);
                }
            }
        }
       
        public void cancelCellEditing()
        {}
       
        /**
         * 編輯其中一個單元格,再點擊另一個單元格時,調用。
         */
        public boolean stopCellEditing()
        {
            // 可以注釋掉下面的fireEditingStopped();然后在GenderEditor的構造函數中把
            // addActionListener()的注釋去掉(這時請求終止編輯操作從JComboBox獲得),
            // System.out.println("編輯其中一個單元格,再點擊另一個單元格時,調用。");
            // 請求終止編輯操作從JTable獲得
            fireEditingStopped();
            return true;
        }
       
        /**
         * 為一個單元格初始化編輯時,getTableCellEditorComponent被調用
         */
        public Component getTableCellEditorComponent(JTable table, Object value,
                boolean isSelected, int row, int column)
        {
            String s = String.valueOf(value);
            setSelectedItem(s);
            return this;
        }
       
        /**
         * 詢問編輯器它是否可以使用 anEvent 開始進行編輯。
         */
        public boolean isCellEditable(EventObject anEvent)
        {
            return true;
        }
       
        /**
         * 如果應該選擇正編輯的單元格,則返回true,否則返回 false。
         */
        public boolean shouldSelectCell(EventObject anEvent)
        {
            return true;
        }
       
        /**
         * 返回值傳遞給TableValue(TableModel)中的setValueAt()方法
         */
        public Object getCellEditorValue()
        {
            return this.getSelectedItem().toString();
        }
    }
    posted on 2012-12-08 23:12 HUIKK 閱讀(584) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 中文字幕成人免费高清在线视频| 亚洲人成色7777在线观看| 久久国产精品亚洲综合| 国产免费人成视频尤勿视频| 五月天婷亚洲天综合网精品偷| 中文字幕亚洲精品无码| 成年女人午夜毛片免费视频| 亚洲福利一区二区| 免费精品国偷自产在线在线| 亚洲人成网站日本片| 青娱分类视频精品免费2| 亚洲综合久久一本伊伊区| 在线a级毛片免费视频| 亚洲国产日韩综合久久精品| 在线观看视频免费国语| 亚洲国产高清国产拍精品| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 成人免费无码大片a毛片| 亚洲精品久久无码av片俺去也| 国产高清视频在线免费观看| 久久精品国产亚洲AV| 亚洲高清无码综合性爱视频| 国产黄色免费观看| 亚洲国产一区国产亚洲| 精品久久久久成人码免费动漫 | 亚洲一区二区观看播放| 日本二区免费一片黄2019| 美女黄色毛片免费看| 亚洲乱亚洲乱少妇无码| 2022免费国产精品福利在线| 亚洲AV日韩AV永久无码绿巨人| 91老湿机福利免费体验| 国产午夜亚洲精品| 国产v片免费播放| 中文字幕无码日韩专区免费| 亚洲成a人片毛片在线| 麻豆国产精品入口免费观看| 九九久久精品国产免费看小说| 亚洲Av无码专区国产乱码DVD| 成人女人A级毛片免费软件| 精品视频免费在线|