使用向量为JTable [英] Using vector for JTable

查看:140
本文介绍了使用向量为JTable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现在我只是使用 JList ,但看起来好多了,如果数据显示在 JTable
这是GUI类:

Right now I just use JList, but it looks much better if the data is shown in a JTable. This is the GUI class:

public class Table extends JFrame {

private JPanel contentPane;
DefaultTableModel tableModel = new DefaultTableModel();
private JTable table;
private Controller controller = new Controller();
private static Vector <Vector<String>> data = new Vector <Vector<String>>();


/**
 * Launch the application.
 */


public Table() throws SQLException {

    Vector <String> columnNames = new Vector <String>();
    ResultSet rs2 = controller.getPerson();
    while (rs2.next()){
    columnNames.add(rs2.getString(1));
    }
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);

            //add tableModel into table
    table = new JTable(tableModel);

    contentPane.add(table, BorderLayout.CENTER);
            //Create JButton
    JButton showBtn = new JButton("Show");
    showBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            try {
        ResultSet rs = controller.getPerson();
        while (rs.next()){
        Vector <String> vstring = new Vector <String>();
            vstring.add(rs.getString(1));
            data.add(vstring);

                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
    contentPane.add(showBtn, BorderLayout.SOUTH);
}}

点击按钮时,数据应显示在 JTable 。我真的不知道如何循环通过数据库中的列和行,然后将此信息添加到 JTable

When the button is clicked the data should be shown in the JTable. I don't really know how to loop through the columns and rows in the database and then add this info to the JTable.

推荐答案

//全局声明

private Vector<Vector<String>> data; //used for data from database
private Vector<String> header; //used to store data header

//显示信息到JTable

//Display info to JTable

    data = get();

    //create header for the table
    header = new Vector<String>();
    header.add("Column1"); 
    header.add("Column2");
    ...
    model=new DefaultTableModel(data,header);
    table = new JTable(model);

这将帮助您从数据库获取数据

This will help you to get data from database

get(){
Vector<Vector<String>> doublevector = new Vector<Vector<String>>();

Connection conn = dbConnection();//Your Database connection code
PreparedStatement pre1 = conn.prepareStatement("select * from Table");

ResultSet rs1 = pre1.executeQuery();
while(rs1.next())
{
Vector<String> singlevector = new Vector<String>();
singlevector.add(rs1.getString(1)); 
singlevector.add(rs1.getString(2)); 
....
doublevector.add(singlevector);

}

return doublevector;
}

这篇关于使用向量为JTable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆