gpt4 book ai didi

java - 如何刷新与jtable绑定(bind)的Jscrollpane中的数据?

转载 作者:行者123 更新时间:2023-12-02 05:47:11 25 4
gpt4 key购买 nike

当我直接使用jtable时,我的代码可以工作,但是当我将它与滚动面板绑定(bind)时,它会运行一次。再次单击按钮后,它会隐藏数据。这是代码:

import java.awt.ScrollPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import com.mysql.jdbc.Statement;

class Scrl extends JFrame implements ActionListener
{
JScrollPane sp;
Icon back,front;
JLabel l,l1;
JTable tb=new JTable();
DefaultTableModel model;
String column[]={"JobcardNo","Customer Name","Brand","Date","PhoneNo"};
JTextField jobt=new JTextField("");
JButton b=new JButton("click");


public Scrl()

{
b.setBounds(200,140,100,20);
jobt.setBounds(114,50,100,20);
model = new DefaultTableModel();
tb.setModel(model);
model.setColumnIdentifiers(column);
add(jobt);
add(b);


b.addActionListener(this);


setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setResizable(false);
setLocationRelativeTo(null);
setLayout(null);
setSize(700,600);
setVisible(true);
setLocationRelativeTo(null);
}

@Override
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b)
{
String job_no=jobt.getText();

try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/ac_data","root","root");
java.sql.Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from main");
while(rs.next())
{
String hey=rs.getString(1);
if(hey.equals(job_no))
{
System.out.println(rs.getString(2));
String jobno=rs.getString(1);
String names=rs.getString(2);
String brand=rs.getString(21);
String date=rs.getString(6);
String phoneno=rs.getString(4);
model.addRow(new Object[]{jobno,names,brand,date,phoneno});
}
}
}

catch(Exception ee)
{
}

}
JScrollPane sp=new JScrollPane(tb);
sp.setBounds(1,165,687,440);
add(sp);
}
public static void main(String[] args)
{
new Scrl();
}
}

滚动面板本身不刷新数据。

最佳答案

  1. 完成后不要关闭连接。

  2. 在构建 GUI 之前,您应该从数据库中读取一次信息,并将该信息放入 TableModel 中。 .

  3. 当您应该使用 layout manager 时,您却试图手动放置所有 Swing 组件。 .

  4. 您没有将 Swing 组件放在 Event Dispatch thread 上.

这应该足以让你忙碌一段时间了。

关于java - 如何刷新与jtable绑定(bind)的Jscrollpane中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23953396/

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