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 错误
{ 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 错误
又没有返回值,你"排序后的数据:"这样去拼接怎么会有结果
可以把那两个方法改成返回结果字符串
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());
}
}
}
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里面的打印也改了就行了
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());
}
}
}
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());
} }
}
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;
}
}