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

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

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

    夢(mèng)幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評(píng)論 :: 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用于通知感興趣的參與者事件源中的狀態(tài)已發(fā)生更改 */
        private ChangeEvent changeEvent = new ChangeEvent(this);
       
        /**
         *<ul>
         *<li>Description:[構(gòu)造方法]</li>
         *<ul>
         */
        public FileFieldEditor(String[] fileFields)
        {
            super();
            for(String fileField : fileFields)
            {
                this.addItem(fileField);
            }
            // 請(qǐng)求終止編輯操作可以包含單元格的JTable收到,也可以從編輯器組件本身(如這里的JComboBox)獲得
            /*
             * addActionListener(newActionListener(){ publicvoid
             * actionPerformed(ActionEvent e) {
             * System.out.println("ActionListener");
             * //如同stopCellEditing,都是調(diào)用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,是因?yàn)橐粋€(gè)為CellEditorListener.class(Class對(duì)象),
                    // 接著的是一個(gè)CellEditorListener的實(shí)例
                    listener = (CellEditorListener) listeners[i + 1];
                    // 讓changeEvent去通知編輯器已經(jīng)結(jié)束編輯
                    // 在editingStopped方法中,JTable調(diào)用getCellEditorValue()取回單元格的值,
                    // 并且把這個(gè)值傳遞給TableValues(TableModel)的setValueAt()
                    listener.editingStopped(changeEvent);
                }
            }
        }
       
        public void cancelCellEditing()
        {}
       
        /**
         * 編輯其中一個(gè)單元格,再點(diǎn)擊另一個(gè)單元格時(shí),調(diào)用。
         */
        public boolean stopCellEditing()
        {
            // 可以注釋掉下面的fireEditingStopped();然后在GenderEditor的構(gòu)造函數(shù)中把
            // addActionListener()的注釋去掉(這時(shí)請(qǐng)求終止編輯操作從JComboBox獲得),
            // System.out.println("編輯其中一個(gè)單元格,再點(diǎn)擊另一個(gè)單元格時(shí),調(diào)用。");
            // 請(qǐng)求終止編輯操作從JTable獲得
            fireEditingStopped();
            return true;
        }
       
        /**
         * 為一個(gè)單元格初始化編輯時(shí),getTableCellEditorComponent被調(diào)用
         */
        public Component getTableCellEditorComponent(JTable table, Object value,
                boolean isSelected, int row, int column)
        {
            String s = String.valueOf(value);
            setSelectedItem(s);
            return this;
        }
       
        /**
         * 詢問編輯器它是否可以使用 anEvent 開始進(jìn)行編輯。
         */
        public boolean isCellEditable(EventObject anEvent)
        {
            return true;
        }
       
        /**
         * 如果應(yīng)該選擇正編輯的單元格,則返回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) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲一区二区三区夜色| 亚洲成在人线在线播放无码| 麻豆国产精品免费视频| 亚洲精华国产精华精华液网站| 久久伊人亚洲AV无码网站| 国产白丝无码免费视频| 亚洲精品无码少妇30P| 最新精品亚洲成a人在线观看| 91高清免费国产自产| 黄色一级毛片免费| 久久亚洲成a人片| 永久免费毛片手机版在线看| a级成人毛片免费视频高清| 67194在线午夜亚洲| 亚洲乱码在线播放| 亚洲国产人成精品| 国产91色综合久久免费分享| 免费一区二区三区在线视频| 亚洲国产综合精品| 亚洲中文久久精品无码| 成人a免费α片在线视频网站| 成在人线av无码免费高潮喷水| 亚洲精品无播放器在线播放 | 精品国产日韩亚洲一区| 最近高清中文字幕无吗免费看| www永久免费视频| 亚洲色偷偷综合亚洲av78| 久久青草亚洲AV无码麻豆| 一本色道久久88综合亚洲精品高清| 100部毛片免费全部播放完整| caoporm超免费公开视频| 午夜在线a亚洲v天堂网2019| 亚洲综合一区二区精品导航| 精品国产亚洲男女在线线电影 | 日本一区免费电影| 91精品免费久久久久久久久| 免费视频一区二区| 国产一级a毛一级a看免费人娇| 色偷偷亚洲男人天堂| 亚洲精品人成网在线播放影院| 亚洲黄色在线播放|