Java Swing中JTable的使用

寫數據庫的大作業,難免牽涉到JTable,說一些使用JTable的心得:
JTable的數據源是一個叫做DefaultTableModel的對象,在JTable創建時即可綁定:
 
DefaultTableModel model=new DefaultTableModel();
JTable table=new JTable(model);
 
也可在後期使用setModel函數設定:
 
table.setModel(model);
 
JTable的所有元素操作可在DefaultTableModel中完成,例如:
加入一列元素:
model.addColumn("列名");
該函數還有一個重載,就是
model.addColumn("列名",Object[]);
可以將一個object數組以一列加入model中;
DefaultTableModel也支持逐行的加入,有兩個函數重載:
addRow(Object[]),addRow(Vector);
函數會將數組或vector中的元素自動對應到column
 
修改表中元素:setValueAt(Object a,int row,int column);
刪除一行:removeRow(int row);
 
這次做作業,遇到了幾個問題,說下解決方法,估計都會遇到:
1.列名無法顯示
 
如果直接將JTable加入一個container中,它的列名是不會顯示的,必須將一個包含JTable的JScrollPane加入container,列名纔會正確顯示
使用方法:
 
DefaultTableModel model=new DefaultTableModel();
JTable table=new JTable(model);
this.getContentPane().add(new JScrollPane(table));
 
this是一個JFrame,或者其他container,如JPanel
 
2.當想用這塊地方顯示另一個表的內容時,已加入的列名無法刪除
 
我曾經嘗試在DefaultTableModel中尋找removeAll函數,失敗了,最後,還是使用了比較無奈的方法...
new一個DefaultTableModel ,修改JTable的model綁定
示例:
table.removeAll();
DefaultTableModel model=new DefaultTableModel();
table.setModel(model);
model.addColumn("房間號");
model.addColumn("房間IP");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章