zoukankan      html  css  js  c++  java
  • JTable 的使用方法

    javax.swing.JTable类是java提供给用户创建表格的,使用它可以快捷的实现很多功能,比如直观的展现一个班所有的学生信息等。

    用法:

            在创建窗口的方法里直接创建JTable的对象JTable table = new JTable(model);

    model是一个类,这个类实现了TableModel接口,

    通过重写其中的方法可以设置表格的各种属性,所以在创建JTable之前还要加上 Model model=new Model();

    Model 类的内容会在下面给出。

    当然我在网上看到有很多没用TabelModel的代码,发现其代码不是那么直观,所以我更倾向于使用TableModel,

    好处就是操作起来方便,代码更清晰。

    至于TabelModel中的方法该怎么重写我会在代码注释中会给出,就不赘述了。

    源代码:

    import javax.swing.event.TableModelListener;
    import javax.swing.table.TableModel;
    
    public class Model implements TableModel {
        // 创建数组用于单元格中显示的内容
        String[][] values = new String[3][20];
    
        /**
         * 初始化数组内容
         */
        public void setValues() {
            values[0][0] = "小明";
            values[1][0] = "20150809";
            values[2][0] = "男";
            for (int i = 1; i < 20; i++) {
                values[0][i] = "没有数据";
            }
        }
    
        @Override
        public int getRowCount() {
            // 设置总行数
            return 20;
        }
    
        @Override
        public int getColumnCount() {
            // 设置总列数
            return 3;
        }
    
        @Override
        public String getColumnName(int columnIndex) {
            // 设置单元格列属性(表头名)
            if (columnIndex == 0) {
                return "姓名";
            } else if (columnIndex == 1) {
                return "学号";
            } else if (columnIndex == 2) {
                return "性别";
            } 
                return null;
        }
    
        /**
         * 设置每列数据类型
         */
        @Override
        public Class<?> getColumnClass(int columnIndex) {
            if(columnIndex==0){
                return String.class;
            }else if(columnIndex == 1){
                return String.class;
            }else if(columnIndex==2){
                return String.class;
            }        return null;
        }
    
        /**
         * 设置单元格是否允许编辑
         */
        @Override
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return false;
        }
    
        /**
         * 设置单元格数据内容
         */
        @Override
        public Object getValueAt(int rowIndex, int columnIndex) {
            setValues();
            return values[columnIndex][rowIndex];
        }
    
        /**
         * 设置单元格的值
         */
        @Override
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    
        }
    
        @Override
        public void addTableModelListener(TableModelListener l) {
            // 此方法可给表格添加监听
        }
    
        @Override
        public void removeTableModelListener(TableModelListener l) {
            // 此方法可给表格移除监听
        }
    
    }

    主类:

    import java.awt.BorderLayout;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.RowSorter;
    import javax.swing.table.TableModel;
    import javax.swing.table.TableRowSorter;
    
    public class Manager {
    
        /**
         * @param JTable使用示例
         */
        public static void main(String[] args) {
            new Manager().showFrame();
        }
    
        public void showFrame() {
            // 设置窗体属性
            JFrame frame = new JFrame("JTable");
            frame.setLayout(new BorderLayout());
            frame.setSize(300,400);
            frame.setDefaultCloseOperation(3);
            frame.setLocationRelativeTo(null);
    
            // 创建表格和设置表格格式的类
            Model model = new Model();
            JTable table = new JTable(model);
    //将表格加入滚动面板便于显示
    JScrollPane jscroll = new JScrollPane(table); // 创建自动排序的对象,点击表头可自动对表格进行排序 RowSorter<TableModel> rs = new TableRowSorter<TableModel>(model); table.setRowSorter(rs); frame.add(jscroll, BorderLayout.CENTER); frame.setVisible(true); } }
  • 相关阅读:
    在WCF中使用Flag Enumerations
    WCF开发教程资源收集
    [转]WCF 4 安全性和 WIF 简介
    Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]
    Asp.Net Web API 2第十八课——Working with Entity Relations in OData
    Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)
    Asp.Net Web API 2第十六课——Parameter Binding in ASP.NET Web API(参数绑定)
    Asp.Net Web API 2第十五课——Model Validation(模型验证)
    函数 生成器 生成器表达式
    函数的进阶
  • 原文地址:https://www.cnblogs.com/xiao-v/p/4716119.html
Copyright © 2011-2022 走看看