Java 使用复选框从resultset创建表模型
我打开了关于它的案例,但我不理解被告知的文章。因为我找不到好的例子。如果有人为下面的场景编写一个示例代码,这对我很有帮助。让我解释一下我的问题 我有MSSQL数据库中的SQL表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
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());