这是一个检验上下限之间的素数并输出的applet小程序。本来想要把结果一个个输出的,可是总输出最后的结果,没有中间的值。
请教一下各位大虾!
import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class A extends Applet implements ActionListener
{
 Label prompt;
 TextField in1,in2;
 TextArea output;
 Button btn;
 int max=0,min=0,i=0,j=0;
 public void init()
 {
prompt=new Label("请输入上下限");
in1=new TextField(5);
in2=new TextField(5);
output=new TextArea(100,45);
btn=new Button("取素数");
add(in1);
add(in2);
add(btn);
add(prompt);
add(output);
btn.addActionListener(this);
 }
 public void actionPerformed(ActionEvent e)
 {
max=Integer.parseInt(in1.getText());
min=Integer.parseInt(in2.getText());
First:
for(int i=min;i<max;i++)
{
 for(int j=2;j<i;j++)
 {
  if(i%j==0)
   continue First;
 }
 output.setText("结果是:"+i);
}
 }
}

解决方案 »

  1.   

    我想是不是因为output.setText("结果是:"+i); 这句代码只能输出显示一种结果?
    因为这句代码只是重置文本框的文本,而文本框一次性也只显示一种结果max=Integer.parseInt(in1.getText()); 
    min=Integer.parseInt(in2.getText()); 
    而上面这两句代码楼主也不用写的这么麻烦,因为在包Event中本身已经给我们提供了获取文本框中内容或命令的方法
    但是具体方法的名字我忘记了
    楼主可以看一下API
      

  2.   

    当然没中间啊,你每次都重设TestArea的内容了。可以这样实现:import java.applet.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    public class A extends Applet implements ActionListener 

     Label prompt; 
     TextField in1,in2; 
     TextArea output; 
     Button btn; 
     int max=0,min=0,i=0,j=0; 
     
     public void init() 
     { 
    prompt=new Label("请输入上下限"); 
    in1=new TextField(5); 
    in2=new TextField(5); 
    output=new TextArea(100,45); 
    btn=new Button("取素数"); 
    add(in1); 
    add(in2); 
    add(btn); 
    add(prompt); 
    add(output); 
    btn.addActionListener(this); 
     } 
     
     public void actionPerformed(ActionEvent e) 
     {

      String outStr = "结果是:";//用于保存结果
    max=Integer.parseInt(in1.getText());
    min=Integer.parseInt(in2.getText()); 
    First: 
    for(int i=min;i <max;i++) 

     for(int j=2;j <i;j++) 
     { 
      if(i%j==0) 
       continue First; 
     } 
      outStr += ""+ i +" ";  //每次在outStr尾部追加

    output.setText(outStr);    //最后才整个输出
     } 
    }友情提示:你的素数方法有问题,不信你在上限输入一个素数看看。
      

  3.   

    或者用append直接些,保留上次的查询结果:import java.applet.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    public class A extends Applet implements ActionListener 

     Label prompt; 
     TextField in1,in2; 
     TextArea output; 
     Button btn; 
     int max=0,min=0,i=0,j=0; 
     
     public void init() 
     { 
    prompt=new Label("请输入上下限"); 
    in1=new TextField(5); 
    in2=new TextField(5); 
    output=new TextArea(100,45); 
    btn=new Button("取素数"); 
    add(in1); 
    add(in2); 
    add(btn); 
    add(prompt); 
    add(output); 
    btn.addActionListener(this); 
     } 
     
     public void actionPerformed(ActionEvent e) 
     {

     
    max=Integer.parseInt(in1.getText());
    min=Integer.parseInt(in2.getText()); 
    output.append("从"+min+"到"+max+"的素数有: "); //提示
    First: 
    for(int i=min;i <max;i++) 

     for(int j=2;j <i;j++) 
     { 
      if(i%j==0) 
       continue First; 
     }    output.append(""+i+" "); //每次追加符合的数

    output.append("\n"); //换行
       
     } 
    }
      

  4.   

    First: 
            for(int i=min;i <max;i++) 
            { 
                 for(int j=2;j <i;j++) 
                 { 
                      if(i%j==0) 
                       continue First; 
                 } 
                 outStr += ""+ i +" ";  //每次在outStr尾部追加
    三楼回答得好呀