使用矢量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; }