表格是程式中一種很常見的元件,Swing中的表格是:JTable,表格的功能是把資料以二維表格的形式顯示出來,并且允許使用者對表格中的資料進行編輯。今天我們來介紹一下JTable的簡單使用
一、構造方法:
構造方法1:
JTable(int numRows,int numColumns):使用 DefaultTableModel 構造具有 numRows 行和 numColumns 列個空單元格的 JTable。
構造方法2:
JTable(Object[][] rowData,Object[] columnNames):構造一個 JTable 來顯示二 維數組 rowData 中的值,其列名稱為 columnNames。
二、常用方法
三、執行個體
建立一個執行個體,點選删除可以删除選中的表格行。
package swing;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
/**
* JTabel 表格
* Swing 中表格的資料可以根據需求動态變化,本例子示範如何從表格中删除使用者選擇的行
*/
public class Demo32_JTable2 extends JFrame{
private JPanel contentPane;
private JTable table;
public static void main(String[] args){
Demo32_JTable2 frame = new Demo32_JTable2();
}
public Demo32_JTable2() {
addWindowListener(new WindowAdapter(){
@Override
public void windowActivated(WindowEvent e){
do_this_windowActivated(e);
}
});
setTitle("圖書資訊表");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SwingUtils.setCenter(this);//設定窗體大小600*800并居中
contentPane=new JPanel();
contentPane.setBorder(new EmptyBorder(5,5,5,5));
contentPane.setLayout(new BorderLayout(0,0));
setContentPane(contentPane);
JPanel panel=new JPanel();
contentPane.add(panel,BorderLayout.SOUTH);
JButton button=new JButton("删除");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
do_button_actionPerformed(e);
}
});
panel.add(button);
JScrollPane scrollPane=new JScrollPane();
contentPane.add(scrollPane,BorderLayout.CENTER);
table=new JTable();
table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
scrollPane.setViewportView(table);
setVisible(true);
}
protected void do_this_windowActivated(WindowEvent e){
DefaultTableModel tableModel=(DefaultTableModel) table.getModel(); //獲得表格模型
tableModel.setRowCount(0); //清空表格中的資料
tableModel.setColumnIdentifiers(new Object[]{"書名","出版社","出版時間","叢書類别","定價"}); //設定表頭
tableModel.addRow(new Object[]{"Java從入門到精通(第2版)","清華大學出版社","2010-07-01","軟體工程師入門叢書","59.8元"}); //增加列
tableModel.addRow(new Object[]{"PHP從入門到精通(第2版)","清華大學出版社","2010-07-01","軟體工程師入門叢書","69.8元"});
tableModel.addRow(new Object[]{"Visual Basic從入門到精通(第2版)","清華大學出版社","2010-07-01","軟體工程師入門叢書","69.8元"});
tableModel.addRow(new Object[]{"Visual C++從入門到精通(第2版)","清華大學出版社","2010-07-01","軟體工程師入門叢書","69.8元" });
table.setRowHeight(30);
table.setModel(tableModel); //應用表格模型
}
protected void do_button_actionPerformed(ActionEvent e){
DefaultTableModel model=(DefaultTableModel) table.getModel(); //獲得表格模型
int[] selectedRows=table.getSelectedRows();
for(int i=0;i<selectedRows.length;i++){
model.removeRow(selectedRows[0]);
System.out.println();
}
table.setModel(model);
}
}