gpt4 book ai didi

java - 使用 JCreator 将行添加到 JTable

转载 作者:行者123 更新时间:2023-12-01 14:48:21 25 4
gpt4 key购买 nike

我想在 JTable 中添加行,但效果不佳。有人可以帮助我吗?表格显示正常,但不是动态显示

//displays all data in Jtable
void refresh()
{
Vector<Vector<String>> data = new Vector<>();

ResultSet rs = st.executeQuery("SELECT * FROM tblInfo");

while(rs.next())
{
Vector<String> d = new Vector<>();
d.add(rs.getString("ID"));
d.add(rs.getString("Name"));
d.add(rs.getString("User"));
d.add(rs.getString("Pass"));
data.add(d);
}


Vector<String> header = new Vector<>();
header.add("ID");
header.add("Name");
header.add("Username");
header.add("Password");

model = new DefaultTableModel(data, header);
table = new JTable(model);
st.close();
rs.close();

table.setBackground(Color.LIGHT_GRAY);
table.setForeground(Color.white);
scroll = new JScrollPane(table);
getContentPane().add(scroll);

st.close();
rs.close();
}

//adding data to database
void addDoctor()
{


st.executeUpdate("INSERT INTO tblInfo(Name) VALUES ('Name')");

st.close();
}




public void actionPerformed(ActionEvent e){
Object source = e.getSource();


else if(btnAdd == source)
{

addDoctor();
refresh();
}

感谢您的回复。 :)我在发布之前已编辑过此代码。

最佳答案

1) 不要在try - catch - finally block 内创建任何对象;对于 Swing GUI,请先准备这些对象,最好作为局部变量。

2) 您创建了一个新的

model = new DefaultTableModel(data, header);
table = new JTable(model);

这些对象可能永远不会添加到已经可见的 GUI 中。 Swing GUI 并不关心,并且容器不知道您使用 JTable 更改(重置、重新初始化)底层模型。您必须通知 Swing GUI 进行更改,但这不是正确的方法。

3) 不要在运行时重新创建此对象,重用已存在的对象,仅创建一次 JTable 和 DefaultTableModel。

4) 使用 model.setRowCount(0); 重置 DefaultTableModel,然后从 JDBC 添加新行

5) 不要白费力气,搜索 ResultSetTableModelTableFromDatabase

6) 将代码行 st.close();rs.close(); 移动到 finally block

关于java - 使用 JCreator 将行添加到 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15154415/

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