Swing 表格的使用
1、构造方法1:
JTable(int numRows,int numColumns):裁脾裕使用 DefaultTableModel 构造具有 numRows 行和 numColumns 列个空单元格的 JTable。


2、构造方法2:
JTable(Object[][] rowData,Object[] columnNames):构造一个 JTable 来显示二 维数组 rowData 中的值,辞撤其泛铲列名称为 columnNames。


1、常用方法如下:

1、创建一个实例,设置表格只能选择单行,点击删除可以删除选中的表格行。



2、Demo32_JTable2 类代码如下:
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);
}
}
3、SwingUtils 类代码如下:
public class SwingUtils {
public static void setCenter(JFrame jf) {
int screenWidth=Toolkit.getDefaultToolkit().getScreenSize().width;
int screenHeight=Toolkit.getDefaultToolkit().getScreenSize().height;
int jframeWidth = 800;
int jframeHeight = 600;
jf.setBounds((screenWidth/2)-(jframeWidth/2), (screenHeight/2)-(jframeHeight/2),
jframeWidth, jframeHeight);
}
}