public  void actionPerformed(ActionEvent e)
{ if(e.getSource()==b1)
{ lab2.setText("排序前的数据:"+PrintNum());
lab3.setText("排序后的数据:"+sort());
}

}F:\java>javac MyFrame.java
MyFrame.java:61: 此处不允许使用 "void" 类型
                {       lab2.setText("排序前的数据:"+PrintNum());
                                     ^
MyFrame.java:62: 此处不允许使用 "void" 类型
                        lab3.setText("排序后的数据:"+sort());
                                     ^
2 错误

解决方案 »

  1.   

    很明显的,PrintNum和sort这两个方法,都是void,
    又没有返回值,你"排序后的数据:"这样去拼接怎么会有结果
    可以把那两个方法改成返回结果字符串
      

  2.   

    import java.io.*;
    import java.awt.*;
    import java.applet.Applet;
    import java.awt.event.*;
    import java.lang.String;
    /*<applet code = MyFrame.class width = 320 height = 200></applet>*/
    public class MyFrame extends Applet implements ActionListener
    { Button b1 = new Button("排序");
    Button b2 = new Button("插入");
    Label lab1 =new Label("请输入数据:");
    Label lab2 =new Label("排序前的数据:");
    Label lab3 =new Label("排序后的数据:");
    TextField f1 =new TextField(20); public void init()
    { setLayout(null);
    add(lab1); lab1.setBounds(10,10,100,20);
    add(f1); f1.setBounds(100,10,100,20);
    add(b1); b1.setBounds(10,40,40,20);
    add(b2); b2.setBounds(80,40,40,20);
    add(lab2); lab2.setBounds(10,60,200,20);
    add(lab3); lab3.setBounds(10,80,200,20);
        }
    /*这段程序有点问题,希望能帮我改一下,就是把文本框的数进行排序,然后输出就行了*/
    public void sort()
    { int s[] ;
    String a;
    boolean flag =false;
    a = f1.getText();
    for(int i =0 ;i<a.length();i++)
    s[i] = a.charAt(i);
    for(int i =1;i<s.length;i++)
    { for(int j =0;j<s.length-i;j++)
    { if(s[j]>s[j+1])
    { int t=0;
    t = s[j];
    s[j]=s[j+1];
    s[j+1]=t;
    flag =true;
    }
    else continue;
    }

    if(!flag) break;
    }
            for(int i =0 ;i<s.length;i++) 
    System.out.print(s[i]+"  ");
    }
    /*输出文本框的数*/
    public void PrintNum()
    { int s1[] ;
    String b;
    b = f1.getText();
    for(int i =0 ;i<b.length();i++)
    s1[i] = b.charAt(i);
    for(int i =0 ;i<s1.length;i++) 
    System.out.print(s1[i]+"  ");
    } public  void actionPerformed(ActionEvent e)
    { if(e.getSource()==b1)
    { lab2.setText("排序前的数据:"+PrintNum);
    lab3.setText("排序后的数据:"+sort());
    }

    }
    }
      

  3.   


    public String PrintNum()
     { int s1[] ;
     String b;
    StringBuffer sb = new StringBuffer();
     b = f1.getText();
     for(int i =0 ;i<b.length();i++)
     s1[i] = b.charAt(i);
     for(int i =0 ;i<s1.length;i++) 
        sb.append(s1[i] + " ");
    return sb.toString();
     }给你改一个,你照着把你sort里面的打印也改了就行了
      

  4.   

    让printSum和sort()都返回字符串类型就行了。
      

  5.   

    import java.io.*;
    import java.awt.*;
    import java.applet.Applet;
    import java.awt.event.*;
    import java.lang.String;
    /*<applet code = MyFrame.class width = 320 height = 200></applet>*/
    public class MyFrame extends Applet implements ActionListener
    { Button b1 = new Button("排序");
    Button b2 = new Button("插入");
    Label lab1 =new Label("请输入数据:");
    Label lab2 =new Label("排序前的数据:");
    Label lab3 =new Label("排序后的数据:");
    TextField f1 =new TextField(20); public void init()
    { setLayout(null);
    add(lab1); lab1.setBounds(10,10,100,20);
    add(f1); f1.setBounds(100,10,100,20);
    add(b1); b1.setBounds(10,40,40,20);
    add(b2); b2.setBounds(80,40,40,20);
    add(lab2); lab2.setBounds(10,60,200,20);
    add(lab3); lab3.setBounds(10,80,200,20);
        }
    /*这段程序有点问题,希望能帮我改一下,就是把文本框的数进行排序,然后输出就行了*/
    public String sort()
    { int s[]={} ;
    String a;
    StringBuffer sa = new StringBuffer();
    boolean flag =false;
    a = f1.getText();
    for(int i =0 ;i<a.length();i++)
    s[i] = a.charAt(i);
    for(int i =1;i<s.length;i++)
    { for(int j =0;j<s.length-i;j++)
    { if(s[j]>s[j+1])
    { int t=0;
    t = s[j];
    s[j]=s[j+1];
    s[j+1]=t;
    flag =true;
    }
    else continue;
    }

    if(!flag) break;
    }
            for(int i =0 ;i<s.length;i++) 
    sa.append(s[i]+" ");
    return sa.toString();
    } public String PrintNum()
    { int s1[]={} ;
    String b;
    StringBuffer sb = new StringBuffer();
    b = f1.getText();
    for(int i =0 ;i<b.length();i++)
    s1[i] = b.charAt(i);
    for(int i =0 ;i<s1.length;i++) 
    sb.append(s1[i]+" ");
    return sb.toString();
    } public  void actionPerformed(ActionEvent e)
    { if(e.getSource()==b1)
    { lab2.setText("排序前的数据:"+PrintNum());
    lab3.setText("排序后的数据:"+sort());
    }

    }
    }
      

  6.   

    package studentText;import java.io.*;
    import java.awt.*;
    import java.applet.Applet;
    import java.awt.event.*;
    import java.lang.String;/*<applet code = MyFrame.class width = 320 height = 200></applet>*/
    public class test extends Applet implements ActionListener {
    Button b1 = new Button("排序");
    Button b2 = new Button("插入");
    Label lab1 = new Label("请输入数据:");
    Label lab2 = new Label("排序前的数据:");
    Label lab3 = new Label("排序后的数据:");
    TextField f1 = new TextField(20); public void init() {
    setLayout(null);
    add(lab1);
    lab1.setBounds(10, 10, 100, 20);
    add(f1);
    f1.setBounds(100, 10, 100, 20);
    add(b1);
    b1.setBounds(10, 40, 40, 20);
    add(b2);
    b2.setBounds(80, 40, 40, 20);
    add(lab2);
    lab2.setBounds(10, 60, 200, 20);
    add(lab3);
    lab3.setBounds(10, 80, 200, 20);
        b1.addActionListener(this);
    } /* 这段程序有点问题,希望能帮我改一下,就是把文本框的数进行排序,然后输出就行了 */
    public String sort() {

    String a;
    StringBuffer sa = new StringBuffer();
    boolean flag = false;
    a = f1.getText();
    int s[] = new int[a.length()];
    for (int i = 0; i < a.length(); i++)
    s[i] =Integer.parseInt(String.valueOf(a.charAt(i))) ;
    for (int i = 1; i < s.length; i++) {
    for (int j = 0; j < s.length - i; j++) {
    if (s[j] > s[j + 1]) {
    int t = 0;
    t = s[j];
    s[j] = s[j + 1];
    s[j + 1] = t;
    flag = true;
    } else
    continue;
    } if (!flag)
    break;
    }
    for (int i = 0; i < s.length; i++)
    sa.append(s[i] + " ");
    return sa.toString();
    } public String PrintNum() {

    String b;
    StringBuffer sb = new StringBuffer();
    b = f1.getText();
    int s1[] = new int[b.length()];
    for (int i = 0; i < b.length(); i++)
    s1[i] =Integer.parseInt(String.valueOf(b.charAt(i))) ;
    for (int i = 0; i < s1.length; i++)
    sb.append(s1[i] + " ");
    return sb.toString();
    } public void actionPerformed(ActionEvent e) {
    if (e.getSource() == b1) {
    lab2.setText("排序前的数据:" + PrintNum());
    lab3.setText("排序后的数据:" + sort());
    } }
    }
      

  7.   

    actionPerformed
    void actionPerformed(ActionEvent e)发生操作时调用。 
    public void actionPerformed(ActionEvent e)
    {}
    如果这儿是冒泡排序实现的方法:
    for(int i =1;i<s.length;i++)
    { for(int j =0;j<s.length-i;j++)
    { if(s[j]>s[j+1])
    { int t=0;
    t = s[j];
    s[j]=s[j+1];
    s[j+1]=t;
    flag =true;
    }
    这个方法应该有问题,
    冒泡法应该是这样的,
    for(int i=0;i<s.length;i++)
    {
    for(int j=1;j<s.length-i;j++)
    if(s[j]>s[j+1])
    {
    int t=0;
    t = s[j];
    s[j]=s[j+1];
    s[j+1]=t;
    flag =true;
    }
    }