import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel; //引入创建表格的表格模式类
public class TableTest extends JFrame {
DefaultTableModel model; //声明表格模式对象
JTable table; //声明表格对象
String[] columnNames={"姓名","学号","成绩","等级"}; //表格列标题
int row=3; //表格行数的初值
String[][] tableContents={{"张三","111111","92","A"},
{"李四","222222","82","B"},
{"刘六","333333","58","D"}};
JButton insertRow, //表格中插入新的一行的按钮
averageScore; //求表格第3列平均成绩的按钮
public TableTest(String str){
super(str);
Container contentPane =this.getContentPane();
//北边---按钮,点击表格增加1行
insertRow=new JButton("增加行");
contentPane.add(insertRow,BorderLayout.NORTH);
insertRow.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
row++; //表格行数加1
model.setRowCount(row); //设置表格行数
table.doLayout(); //更新表格
String contents=null;
for(int i=0;i<table.getColumnCount();i++){//循环新行每一列
contents=JOptionPane.showInputDialog("请输入:"+table.getColumnName(i) );
table.setValueAt(contents,row-1,i); //设置新行每一列的内容
}
}
});
//中间---表格
//创建表格模型:指明列标题和行数
model=new DefaultTableModel(columnNames,row);
table=new JTable(model); //创建表格
for(int i=0;i<table.getRowCount();i++){//循环行
for(int j=0;j<table.getColumnCount();j++){//循环列
table.setValueAt(tableContents[i][j],i,j); //表格中每个单元格赋值
}
}
table.setEnabled(false);//设置表格不可修改
JScrollPane tablePane=new JScrollPane(table); //增加滚动条
contentPane.add(tablePane, BorderLayout.CENTER); //添加
//南边---按钮,求平均分
averageScore=new JButton("求平均分");
contentPane.add(averageScore,BorderLayout.SOUTH);
averageScore.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int sum=0;
for(int i=0;i<table.getRowCount();i++){//求成绩的和
sum+=Integer.parseInt((String)table.getValueAt(i,2));
}
JOptionPane.showMessageDialog(null,
"平均成绩"+sum/table.getRowCount());//显示平均值
}
});
setSize(300,200);
setVisible(true);
}
public static void main(String args[]) {
TableTest mytree=new TableTest("表格使用");
}
}