Java 使用复选框从resultset创建表模型

Java 使用复选框从resultset创建表模型,java,swing,jdbc,jtable,abstracttablemodel,Java,Swing,Jdbc,Jtable,Abstracttablemodel,我打开了关于它的案例,但我不理解被告知的文章。因为我找不到好的例子。如果有人为下面的场景编写一个示例代码,这对我很有帮助。让我解释一下我的问题 我有MSSQL数据库中的SQL表 Column 1: "Mach" (varchar) Column 2: "ID" (int) Column 3: "Status" (varchar) Column 4: "IsActive" (bit) (values 1 or 0 under db table) //this one must show as ch

我打开了关于它的案例,但我不理解被告知的文章。因为我找不到好的例子。如果有人为下面的场景编写一个示例代码,这对我很有帮助。让我解释一下我的问题

我有MSSQL数据库中的SQL表

Column 1: "Mach" (varchar)
Column 2: "ID" (int)
Column 3: "Status" (varchar)
Column 4: "IsActive" (bit) (values 1 or 0 under db table) //this one must show as checkbox in jTable
我想用抽象表模型创建一个jTable。使用此模型创建表格时,表格将第4列显示为复选框。我有一些尝试,但在jTable的第四栏中所有的节目都是“真”或“假”


提前谢谢。

我终于解决了这个问题。让我们分享我的代码

表格模型类

class MyTableModel extends AbstractTableModel {


    private String[] columnNames = {"Mach",
                                    "ID",
                                    "Status",
                                    "IsActive"};

    private Vector<Vector<Object>> data = new Vector<Vector<Object>>();

    public MyTableModel() {try {
        fetchDB();
        } catch (Exception ex) {
            Logger.getLogger(Config.class.getName()).log(Level.SEVERE, null, ex);
        }
     }

    public void fetchDB ()throws Exception{

        ResultSet rs;
        Statement stmt;
        ResultSetMetaData rsmtd;

         String query = "select Mach,ID,Status,IsActive from Configs\n" +
        "order by Machine,ID";
        try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String connectionUrl = "jdbc:sqlserver://192.168.100.100;" + "databaseName=DBST;" + "user=" + "user1" + ";" + "password=" + "user1pass" + ";"; 
        Connection con = DriverManager.getConnection(connectionUrl);
        stmt = con.createStatement();
        rs = stmt.executeQuery(query);
        rsmtd = rs.getMetaData();


        int columnCount = rsmtd.getColumnCount();
         while (rs.next()) {
            Vector<Object> vector = new Vector<Object>();
            for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
                vector.add(rs.getObject(columnIndex));
            }
            data.add(vector);

          }

        }

        catch(SQLException se){
        se.printStackTrace();
        } 
        catch (ClassNotFoundException ex) {
            Logger.getLogger(Config.class.getName()).log(Level.SEVERE, null, ex);
        }
  }


    @Override
    public int getColumnCount() {
        return columnNames.length;
    }

    @Override
    public int getRowCount() {
        return data.size();
    }

    @Override
    public String getColumnName(int col) {
        return columnNames[col];
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {

        return data.elementAt(rowIndex).elementAt(columnIndex);  
    }



    @Override
    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }




}

首先看一看,了解如何工作,了解方法的重要性,以及它如何影响渲染效果。实际上,我在4-5天内阅读了《如何使用表格》的文章。但是文章总是用默认值显示创建模型。我基本上理解逻辑,但当我需要从resultset检索数据时,我就被卡住了。为了使用默认编辑器/渲染器,请参阅清楚定义
TableModel
要求的部分。然后看一看链接,它清楚地展示了所讨论的概念。请求代码不是这个论坛的工作方式,我必须加载并运行它。但是这个“素食主义者”专栏在我的桌面电脑上显示“真”或“假”。这正常吗?
jTable1 = new javax.swing.JTable (new MyTableModel());