使用矢量JTable

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

 public class Table extends JFrame { private JPanel contentPane; DefaultTableModel tableModel = new DefaultTableModel(); private JTable table; private Controller controller = new Controller(); private static Vector <Vector> data = new Vector <Vector>(); /** * Launch the application. */ public Table() throws SQLException { Vector  columnNames = new Vector (); 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  vstring = new Vector (); 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

JDBCAdapter扩展了AbstractTableModel ,是一个很好的研究范例。 它可以在samples/demo/jfc/TableExample中找到,可以在Java SE Development Kit 7u45演示和示例下载中找到

//全球宣言

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

//向JTable显示信息

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

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

 get(){ Vector> doublevector = new Vector>(); Connection conn = dbConnection();//Your Database connection code PreparedStatement pre1 = conn.prepareStatement("select * from Table"); ResultSet rs1 = pre1.executeQuery(); while(rs1.next()) { Vector singlevector = new Vector(); singlevector.add(rs1.getString(1)); singlevector.add(rs1.getString(2)); .... doublevector.add(singlevector); } return doublevector; }