import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;public class Jtable extends JFrame implements ActionListener{

JPanel l1,l2,l3;
JTextField tf[]=new JTextField[6];
JTable table;
JButton add,px;
Vector vtitle,vall;
DefaultTableModel dm;
int m,n,sum;
public Jtable(){
super();
this.setSize(400, 400);
this.setDefaultCloseOperation(3);
l1=new JPanel();
l2=new JPanel();
l3=new JPanel();
for(int i=0;i<tf.length;i++)
{ tf[i]=new JTextField(10);
if(i%2==0){tf[i].setEnabled(false);}
}
tf[0].setText("姓名:");
tf[2].setText("数学:");
tf[4].setText("语文:");

vtitle=new Vector();
vtitle.add("姓名");
vtitle.add("数学");
vtitle.add("语文");
vtitle.add("总分");
vall=new Vector();
dm=new DefaultTableModel(vall,vtitle);
table=new JTable(dm);
l1.setLayout(new GridLayout(3,3));
for(int i=0;i<tf.length;i++)
l1.add(tf[i]);
add=new JButton("添加");
px=new JButton("排序");
l2.setLayout(new GridLayout(1,2));
l2.add(add);
l2.add(px);
this.getContentPane().add(l1,"North");
this.getContentPane().add(new JScrollPane(table),"Center");
this.getContentPane().add(l2,"South");
    add.addActionListener(this);
    px.addActionListener(this);
this.setVisible(true);

} public void actionPerformed(ActionEvent e) {
if(e.getSource()==add){
String str1=tf[1].getText().trim();
String str3=tf[3].getText().trim();
String str5=tf[5].getText().trim();
m=Integer.parseInt(str3);
n=Integer.parseInt(str5);
sum=m+n;
String str=String.valueOf(sum);
Vector vline=new Vector();
vline.add(str1);
vline.add(str3);
vline.add(str5);
vline.add(str);

//vline.add(str);
dm.addRow(vline);
tf[1].setText(null);
tf[3].setText(null);
tf[5].setText(null);

}
if(e.getSource()==px){
int p,q;
p=table.getColumnCount();
q=table.getRowCount();
String st[][]=new String[q][p];
student stu[]=new student[q];
Vector vline1=new Vector();
System.out.println(p);
System.out.println(q);
for(int i=0;i<q;i++)
for(int j=0;j<4;j++)
{st[i][j]=(String) table.getValueAt(i, j);
//System.out.println(st[i][j]);
}
/*for(int i=0;i<q;i++)

{ System.out.println(st[i][0]);
System.out.println(st[i][1]);
System.out.println(st[i][2]);
System.out.println(st[i][3]);}*/

for(int i=0;i<q;i++)

{   student user=new student();
user.setName(st[i][0]);
user.setShu(Integer.parseInt(st[i][1]));
user.setYu(Integer.parseInt(st[i][2]));
user.setSum(Integer.parseInt(st[i][3]));
stu[i]=user;
}
    //for(int i=0;i<q;i++)

// { System.out.println(stu[i].getSum());
//System.out.println(st[i][1]);
//System.out.println(st[i][2]);
//System.out.println(st[i][3]);
//}

for(int i=0;i<q-1;i++)
{
for(int j=i+1;j<q;j++)
{student sss=new student();
if(stu[i].getSum()<stu[j].getSum()){sss=stu[i];stu[i]=stu[j];stu[j]=sss;}
}}
/*for(int iii=0;iii<q;iii++)

{ System.out.println(stu[iii].getSum());}*/
for(int i=0;i<q;i++){
student cc=new student();
 cc=stu[i];
// System.out.println(cc.getName());
vline1.add(cc.getName());
vline1.add(cc.getShu());
vline1.add(cc.getYu());
vline1.add(cc.getSum());
 dm.addRow(vline1);
}
   
dm.setDataVector(vall, vtitle);



}






}
public static void main(String[] args) {
new Jtable();
}}
public class student {
private String name;
private int shu,yu,sum;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getShu() {
return shu;
}
public void setShu(int shu) {
this.shu = shu;
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
public int getYu() {
return yu;
}
public void setYu(int yu) {
this.yu = yu;
}