菜鸟求助!

mkaser 2012-11-11 01:52:26
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 错误
...全文
218 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoming262350 2012-11-11
  • 打赏
  • 举报
回复
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; } }
WanGuFengYue 2012-11-11
  • 打赏
  • 举报
回复
LZ帮你改好了求给分,错误还挺多- -!
WanGuFengYue 2012-11-11
  • 打赏
  • 举报
回复
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()); } } }
mkaser 2012-11-11
  • 打赏
  • 举报
回复
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()); } } }
mkaser 2012-11-11
  • 打赏
  • 举报
回复
按排序后怎么没反应呢?
mkaser 2012-11-11
  • 打赏
  • 举报
回复
一定会给的,大部分给你
iihero 2012-11-11
  • 打赏
  • 举报
回复
让printSum和sort()都返回字符串类型就行了。
wapigzhu 2012-11-11
  • 打赏
  • 举报
回复

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里面的打印也改了就行了
mkaser 2012-11-11
  • 打赏
  • 举报
回复


就是这个效果,
mkaser 2012-11-11
  • 打赏
  • 举报
回复
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()); } } }
wapigzhu 2012-11-11
  • 打赏
  • 举报
回复
引用 楼主 mkaser 的回复:
public void actionPerformed(ActionEvent e) { if(e.getSource()==b1) { lab2.setText("排序前的数据:"+PrintNum()); lab3.setText("排序后的数据:"+sort()); } } F:\java>javac MyFrame.java MyF……
很明显的,PrintNum和sort这两个方法,都是void, 又没有返回值,你"排序后的数据:"这样去拼接怎么会有结果 可以把那两个方法改成返回结果字符串
iihero 2012-11-11
  • 打赏
  • 举报
回复
把整段源码帖出来看看吧。 不然,看不出所以然。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧