大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java jtable用法詳解

Java jtable用法詳解

更新時間:2022-11-11 10:56:46 來源:動力節(jié)點 瀏覽2548次

Java jtable如何使用?動力節(jié)點小編來告訴大家。

設置單元格的渲染器為復選框,如下:

//設置表格和表頭的默認渲染器
simpleTable.setDefaultRenderer(Object.class, simpleTableRender);
simpleTable.getTableHeader().setDefaultRenderer(headerRenderer);
//設置單元格的渲染器
checkBoxRenderer = new CheckBoxRenderer(simpleTable);       
simpleTable.getColumnModel().getColumn(0).setCellRenderer(checkBoxRenderer);

設置單元格的渲染器和編輯器為下拉框,如下:

simpleTable.getColumnModel().getColumn(3).setCellRenderer(comboBoxRenderer);      
simpleTable.getColumnModel().getColumn(3).setCellEditor(comboBoxCellEditor); 

設置排序方法,如下:

sorter = new TableRowSorter<LogonStatusTableModel>((LogonStatusTableModel) simpleTable.getModel());
simpleTable.setRowSorter(sorter);
ArrayList<SortKey> list = new ArrayList<SortKey>();
list.add(new TableRowSorter.SortKey(1, SortOrder.ASCENDING));
sorter.setSortKeys(list);
sorter.sort();
sorter.setSortable(0, false);

設置表頭的排序標識按鈕,如下:

simpleTable.getTableHeader().addMouseListener(new HeaderMouseListener());
class HeaderMouseListener extends MouseAdapter {
        @Override
        public void mouseClicked(MouseEvent e) {
            JTableHeader h = (JTableHeader) e.getSource();
            TableColumnModel columnModel = h.getColumnModel();
            TableCellRenderer tcr = h.getDefaultRenderer();
            int viewColumn = columnModel.getColumnIndexAtX(e.getX());
            if (viewColumn < 0)
                return;
            int column = columnModel.getColumn(viewColumn).getModelIndex();
            if (column != -1 && tcr instanceof LogonStatusContentHeaderRenderer) {
                LogonStatusContentHeaderRenderer sbr = (LogonStatusContentHeaderRenderer) tcr;
                sbr.setSelectedColumn(column);
            }
        }
        @Override
        public void mouseReleased(MouseEvent e) {
            ((JTableHeader) e.getSource()).repaint();
        }
    }

設置數(shù)據(jù)返回值類型,如下:

//返回布爾值
@Override  
public Class<?> getColumnClass(int columnIndex) {
        if (columnIndex == 0)
            return Boolean.class;
        else
            return super.getColumnClass(columnIndex);
}
//返回Double類型,排序時會按Double類型排序
@Override
public Class<?> getColumnClass(int columnIndex) {
        if(columnIndex==2){
            return Double.class;
        }else
            return super.getColumnClass(columnIndex);
}

設置某一列是否可以編輯,如下:

public boolean isCellEditable(int row, int column) {
        if (row >= 0) {
            SysParamStruct info = localMap.get(String.valueOf(row));
            if (info == null) {
                System.out.println("info   null");
            }
            if (info != null) {
                if (columnsOrder.elementAt(column) == EnumSysParaColumn.VALUE) {
                    return true;
                }
                if (columnsOrder.elementAt(column) == EnumSysParaColumn.STATUS) {
                    return true;
                }
            }
        }
        return false;
    }

設置列的值,如下:

public Object getValueAt(int row, int column) {
        if (row >= 0) {
            SysParamStruct info = localMap.get(String.valueOf(row));
            if (info == null) {
                System.out.println("info   null");
            }
            if (info != null) {
                if (columnsOrder.elementAt(column) == EnumSysParaColumn.PARA_NAME) {
                    return info.getShortDesc();
                } else if (columnsOrder.elementAt(column) == EnumSysParaColumn.PARA_DESC) {
                    return info.getLongDesc();
                } else if (columnsOrder.elementAt(column) == EnumSysParaColumn.VALUE) {
                    return info.getValue();
                }  else if (columnsOrder.elementAt(column) == EnumSysParaColumn.STATUS) {
                    return info.getStatus();
                }            
            }           
        }
        return "";
    }

使編輯的列值生效,如下:

public void setValueAt (Object value, int row, int column) {
        SysParamStruct info = localMap.get(String.valueOf(row));
        if (columnsOrder.elementAt(column) == EnumSysParaColumn.VALUE) {
            info.setValue((String) value);
            localMap.put(String.valueOf(row), info);
        }
        if (columnsOrder.elementAt(column) == EnumSysParaColumn.STATUS) {
            char status = 0;
            switch ((StatusType)value) {
                case Active :
                    status = StatusType.Active.getValue();
                    break;
                case Suspended :
                    status = StatusType.Suspended.getValue();              
                    break;
                case Deleted :
                    status = StatusType.Deleted.getValue();
                    break;
                default :
                    break;
            }
            info.setStatus(status);
            localMap.put(String.valueOf(row), info);
        }
        fireTableCellUpdated(row, column);
    }

ComboBoxRenderer里面的內容,如下:

@Override
    public Component getTableCellRendererComponent(
        JTable table,
        Object value,
        boolean isSelected,
        boolean hasFocus,
        int row,
        int column) {
        oddColor = ResManager.getColor("Trade.OrderBook.TableCell.OddColor");
        evenColor = ResManager.getColor("Trade.OrderBook.TableCell.EvenColor");
        fgColor = ResManager.getColor("Trade.OrderBook.TableCell.textColor");
        highlightBgColor = HVResMgr.getColor("Trade.OrderBook.TableCell.HighlightColor");
        //set line background color
        if ((row % 2) == 0) {
            bgColor = oddColor;
        }
        else {
            bgColor = evenColor;
        }
        // set highlight color
        if (isSelected) {
            bgColor = highlightBgColor;
        }
        //calculate the font size
        double ratio = 1.0;
        if (table instanceof BaseTable) {
            ratio = ((BaseTable) table).getRatio();
        }
        int fontSize = (int) (font.getSize() * ratio);
        font = new Font(font.getName(), font.getStyle(), fontSize);
        this.comboBox.setBorder(null);
        this.comboBox.setBackground(bgColor);
        this.comboBox.setForeground(fgColor);
        if (column == 3) {
            StatusType status = null;
            switch ((Character) value) {
                case 'A' :
                    status = StatusType.Active;
                    break;
                case 'S' :
                    status = StatusType.Suspended;
                    break;
                case 'D' :
                    status = StatusType.Deleted;
                    break;
                default :
                    break;
            }
            this.comboBox.setSelectedItem(status);
        }
        return this.comboBox;
    }

ComboBoxCellEditor里面的內容,如下:

public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        if (column == 3) {
            StatusType status = null;
            switch ((Character) value) {
                case 'A' :
                    status = StatusType.Active;
                    break;
                case 'S' :
                    status = StatusType.Suspended;
                    break;
                case 'D' :
                    status = StatusType.Deleted;
                    break;
                default :
                    break;
            }
            this.comboBox.setSelectedItem(status);
        }
        return this.comboBox;
    }
    @Override
    public Object getCellEditorValue() {
        return this.comboBox.getSelectedItem();
    }

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲精品久久激情影院 | 欧美一区二区手机在线观看视频 | 亚洲欧美日韩久久精品第一区 | 欧美性大战久久久久久久蜜桃 | 日韩xoxo视频在线观看 | 五月天狠狠干 | 天天草比 | 五月激情综合网 | 午夜久久久 | 中国产一级毛片 | 色五月情| 国产精品久久久久久网站 | 欧美精品在线看 | 再猛点深使劲爽日本免费视频 | 久久精品啪啪嗷嗷叫 | 最新国产福利片在线观看 | 98精品国产综合久久 | 国产www在线播放 | 久久久一区二区三区不卡 | 日日夜夜精品免费视频 | 美国免费三片在线观看 | 夜夜艹日日艹 | 一区二区三区在线 | 日本 | 国产精品免费一区二区三区四区 | 99热久久久久久久免费观看 | 大乳孕妇一级毛片 | 亚洲国产成人久久一区www | 日本视频一区二区三区 | 久久国产免费福利资源网站 | 日韩一区国产二区欧美三 | 欧美hdvideosex4k | 在线国产日韩 | 午夜精品久久久久久久99热浪潮 | 一级做a爱片特黄在线观看免费看 | 老司机久久精品 | 午夜国产精品久久影院 | 国产区视频在线 | 手机看片国产欧美日韩高清 | 国产日比视频 | 国产精品亚洲综合一区 | 亚洲性综合 |