gpt4 book ai didi

java - 带有 DefaultTableModel 的简单 JTable

转载 作者:行者123 更新时间:2023-12-01 04:28:03 24 4
gpt4 key购买 nike

我使用 DefaultTableModel 作为我的 JTable 模型,但不显示我的表格!

public class RecordTableGUI2 extends JFrame {

JTable table;
RecordTableModel2 model2;

public RecordTableGUI2() {
model2 = new RecordTableModel2();
table = new JTable(model2);

add(new JScrollPane(table), BorderLayout.CENTER);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 500);
setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new RecordTableGUI2();
}
});
}
}

模型类:

public class RecordTableModel2 extends DefaultTableModel {
Connection con;
Statement statement;
ResultSet result;
String dbUrl = "jdbc:mysql://localhost/mydb";
String query = "Select * from mytable";
Vector data = new Vector();
Vector column = new Vector();


public RecordTableModel2() {
try {
con = DriverManager.getConnection(dbUrl, "root", "2323");
statement = con.createStatement();
result = statement.executeQuery(query);

int c = result.getMetaData().getColumnCount();
for (int i = 1; i <= c; i++) {
column.add(result.getMetaData().getColumnName(i));
System.out.println(result.getMetaData().getColumnName(i)); //prints correct
}

while (result.next()) {
Vector eachRow = new Vector(c);
for (int i = 1; i <= c; i++) {
eachRow.add(result.getString(i));
System.out.println(result.getString(i)); //prints correct
}
data.add(eachRow);
}

} catch (SQLException sqle) {
sqle.printStackTrace();
} finally {
try {
if (con != null) {
con.close();
}
if (statement != null) {
statement.close();
}
} catch (SQLException sqlee) {
sqlee.printStackTrace();
}
}
}
}

如何将 vector 引入DefaultTableModel

输出仅显示一个空白的 JFrame

最佳答案

在构造函数的第一个语句处添加以下内容:

super(data,column);

并将datacolumn声明为静态

关于java - 带有 DefaultTableModel 的简单 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18293693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com