Swing中Jtable中排序这么做,帮调试一下我的程序。
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());}*/