import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;
import javax.swing.text.Caret;
public class Equalsnum { 
public static void main(String[] args) {
 
new Strpro();
}}class Strpro implements ActionListener{
JTextField jt[];

Strpro(){

JFrame f = new JFrame();
JLabel jl = new JLabel("请输入任意10个数字进行排续");
jt = new JTextField[10];
for (int i=0;i<jt.length;i++){
 jt[i] =  new JTextField(2);
f.add(jt[i]);
}
JButton jb = new JButton("确定");
f.setLayout(new FlowLayout());
jb.addActionListener(this); 
f.setBounds(200, 200, 400,100);
f.add(jl);
// f.add(jt);
f.add(jb);
//f.pack();
f.setVisible(true);
} public void actionPerformed(ActionEvent e) {
String[] b = new String[10];
for (int a=0;a<jt.length;a++){

 b[a] = (jt[a].getText());
// System.out.print(b[a]);
}
 Arrays.sort(b);
for (int x=0;x<b.length;x++){
jt[x].setText(b[x]);
}
}
}为什么不能排呢?????????
如果是01 05 66 55 44这样的两位数就可以.
而1 5 66 55 12 这样的数就不行了.为什么.怎么解决呢?

解决方案 »

  1.   

    因为你这个是,字符串排序,按位比的,你要把字符串转成整型就可以了~~~
    稍微改了下~~~
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.*;
    import javax.swing.*;
    public class Equalsnum { 
        public static void main(String[] args) {
             
            new Strpro();
        }}class Strpro implements ActionListener{
        JTextField jt[];
        
        Strpro(){
            
        JFrame f = new JFrame();
        JLabel jl = new JLabel("请输入任意10个数字进行排续");
        jt = new JTextField[10];
        for (int i=0;i<jt.length;i++){
             jt[i] =  new JTextField(2);
                f.add(jt[i]);
        }
        JButton jb = new JButton("确定");
        f.setLayout(new FlowLayout());
        jb.addActionListener(this); 
        f.setBounds(200, 200, 400,100);
        f.add(jl);
    //    f.add(jt);
        f.add(jb);
        //f.pack();
        f.setVisible(true);
        }    public void actionPerformed(ActionEvent e) {
            int [] b = new int[10];
            for (int a=0;a<jt.length;a++){
              b[a]=Integer.parseInt(jt[a].getText());
            // System.out.print(b[a]);
            }
             Arrays.sort(b);
            for (int x=0;x<b.length;x++){
            
                jt[x].setText(Integer.toString(b[x]));
            }
        }
    }