zoukankan      html  css  js  c++  java
  • JTable的使用问题

    1.设置指定列单元格的前景色


    //获取TableColumn对象
    TableColumn tableColumn = jTable.getColumn("月薪");

    //初始化Table的渲染器
    DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer();
    //设置单元格的前景色
    cellRenderer.setForeground(Color.red);

    //将渲染器设置到获取到的列
    tableColumn.setCellRenderer(cellRenderer);

    2.设置指定单元格的背景色

    //获取TableColumn对象
    TableColumn departmentColumn = jTable.getColumn("部门");

    //重新申明渲染器
    DefaultTableCellRenderer cellRenderer2 = new DefaultTableCellRenderer();
    //设置单元格的背景色
    cellRenderer2.setBackground(Color.blue);

    //将渲染器放入
    departmentColumn.setCellRenderer(cellRenderer2);

    3.设置不能拖动一列

    jTable.getTableHeader().setReorderingAllowed(false);

    4.设置每一列的大小不能改变

    jTable.getTableHeader().setResizingAllowed(false);

    5.设置每一行颜色交替

    DefaultTableCellRenderer cellRenderer3 = new DefaultTableCellRenderer(){

    public Component getTableCellRendererComponent(JTable arg0,Object arg1, boolean arg2, boolean arg3, int arg4, int arg5) {
    // TODO Auto-generated method stub

    if(arg4%2 == 0){
    this.setBackground(Color.pink);
    }
    else {
    this.setBackground(Color.white);
    }

    return super.getTableCellRendererComponent(arg0, arg1, arg2, arg3, arg4, arg5);
    }
    };

    //每一格设置渲染器
    for(int i=0; i<jTable.getColumnCount(); i++){
    TableColumn tableColumn = jTable.getColumn(jTable.getColumnName(i));
    tableColumn.setCellRenderer(cellRenderer3);
    }

    6.在表格中创建下拉框

    JComboBox jComboBox = new JComboBox();
    jComboBox.addItem("人事部");
    jComboBox.addItem("经理部");
    jComboBox.addItem("开发部");
    jComboBox.addItem("财务部");

    //获取列
    TableColumn tableColumn = jTable.getColumn("部门");
    //生成表格编辑器
    DefaultCellEditor defaultCellEditor = new DefaultCellEditor(jComboBox);
    //设置表格编辑器
    tableColumn.setCellEditor(defaultCellEditor);

    7.设置单元格中的对齐方式

    DefaultTableCellRenderer cellRenderer3 = new DefaultTableCellRenderer();
    cellRenderer3.setHorizontalAlignment(JLabel.CENTER);
    for (int i = 0; i < jTable.getColumnCount(); i++) {
    TableColumn tc = jTable.getColumn(jTable.getColumnName(i));
    tc.setCellRenderer(cellRenderer3);
    }

    8.在对数据进行添加时,可以使用DefaultTableModel类的对象的addRow方法直接添加到TalbeModel中,当然,对应数据库也要进行操作。

    注意!在为JTable指定样式的时候,后面定义的会覆盖前面定的(例如:5对其他样式就有覆盖作用,如果5放在后面会将前面所有的样式都覆盖掉)

  • 相关阅读:
    RabbitMQ消费端自定义监听器DefaultConsumer
    RabbitMQ exchange交换机类型
    RabbitMQ 快速入门
    chrome jsonView插件安装
    谈谈令人头大的prototype 和__proto__
    原生JS写一个淡入淡出轮播图
    模拟聊天对话框
    全选反选的小案例
    原生js做一个简单的进度条
    点击回到顶部的按钮
  • 原文地址:https://www.cnblogs.com/zengyinanos/p/4974678.html
Copyright © 2011-2022 走看看