public void actionPerformed(ActionEvent e)
{
  int count=0;
  max=Integer.parseInt(in1.getText());
  min=Integer.parseInt(in2.getText());
  for(int i=min;i<=max;i++)
  if(SuShu(i)==1) 
    {
      s=s+(char)i;//这个地方应该为s=s+String.valueOf(i);
      repaint();
    }
  }

解决方案 »

  1.   

      for(m=2;m<=n/2;m++); 
        此句的;去掉
      

  2.   

    才看到for(m=2;m<=n/2;m++); 
      

  3.   

    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;public class lll extends Applet implements ActionListener
    {
    String s=new String();
    Label lab,result;
    TextField in1,in2;
    Button btn;
    int max=0,min=0;
    public void init()
    {
      lab=new Label("请输入上限和下限:");
      in1=new TextField(5);
      in2=new TextField(5);
      result=new Label(" ");
      btn=new Button("查找");
      add(in1);
      add(in2);
      add(result);
      add(btn);
      add(lab);
      btn.addActionListener(this);
      }
    public void actionPerformed(ActionEvent e)
    {
      int count=0;
      min=Integer.parseInt(in1.getText());
      max=Integer.parseInt(in2.getText());
      for(int i=min;i<max;i++)
      if(SuShu(i)==1)
      {
      s=s+","+String.valueOf(i);
          repaint();
      };
     }
    public int SuShu(int n)
    {
    int m;
      for(m=2;m<Math.sqrt(n);m++){ 
        if(n%m==0)
    break;
      };
      if(Math.sqrt(n)<m)
      return 1;
      else
      return 0;
    }
    public void paint(Graphics g)
    {
      g.drawString(s,10,50);
    }
    }
    首先,你的程序中小错误比较多,你自己对照着改一下
    譬如:min,max的位置颠倒,多分号,等
    最重要的是,判别素数的算法有误,再看一下书吧
      

  4.   

    多谢各位!!!!的确我的程序是小错误百出,当然这不是我一贯的作风,以后会更仔细的检查自己程序,而不图一时之快。我已经找到程序的关键错误,就是yandong_mars(毛毛狗)第二次提出的错误:
    s=s+(char)i;//这个地方应该为s=s+String.valueOf(i);
    这与我对这些类的方法非常不了解有关,书上也是没有介绍,不过我现在知道了。另外,判别素数的算法没有错误,来自潭浩强的《C语言设计教程》,在改正过的程序中也仍用这个算法。不过slientlamb(沉默的羔羊)的程序也是完全正确的。现在我仍需要向各位讨教,关于小Java程序中图形界面的设置问题。
    比如说在g.drawString(s,10,50)中有这些参数设置,那么在标签、文本框中是否也有类似的参数设置来调整他们的大小、位置就象可视化编程中的那些界面属性,因为,那个字符串的显示的位置实在不好。希望大家还可以这样耐心的帮助我!!!谢谢!!!!
      

  5.   

    现在求解怎样十个一行的输出,以下我编的似乎不能实现,每当显示到下一行,前几行显示过的东西就会被空白覆盖掉,只能显示到最后一层的数。



     int a=20;(全局变量,调整输出的位置。)






    public void actionPerformed(ActionEvent e)
     {
      int count=0;
      min=Integer.parseInt(in1.getText());
      max=Integer.parseInt(in2.getText());
      for(int i=min;i<=max;i++)
       if(SuShu(i)==1) 
         {
          s=s+String.valueOf(i)+" ";
          count=count+1;
          repaint();
          if(count%10==0) 
            { a=a+20;s=" ";} //我本来希望每输出10个可以换一次行,但不知该怎么用。
         }
      }






     public void paint(Graphics g)
     {
      g.drawString(s,60,a);
     }
    }
    急切求解!!!!!!!
      

  6.   

    你贴出来的代码中函数SuShu()中,for语句后面的分号不该有的,
    此外你的算法也不是最优的。
      

  7.   

    我试了,用Graphics似乎不能够做格式输出。
    对程序做了个修改,不知对你是否有用
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    public class sushuApplet extends Applet implements ActionListener
    {
    String s="";
    Label lab;
    TextField in1,in2;
    TextArea  result;
    Button btn;
    int max=0,min=0;
    public void init()
    {
      lab=new Label("&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&Eacute;&Iuml;&Iuml;&THORN;&ordm;&Iacute;&Iuml;&Acirc;&Iuml;&THORN;:");
      in1=new TextField(5);
      in2=new TextField(5);
      btn=new Button("&sup2;é&Otilde;&Ograve;");
      add(lab);
      add(in1);
      add(in2);
      add(btn);
      result=new TextArea(5, 40);
      add(result);
      btn.addActionListener(this);
      }
    public void actionPerformed(ActionEvent e)
    {
      int count=0;
      max=Integer.parseInt(in1.getText());
      min=Integer.parseInt(in2.getText());
      s="";
      for(int i=min;i<=max;i++){
      if(bsushu(i)) 
        {
          s=s+String.valueOf(i);
          count++;
          if(count%10==0){
           s=s+"\n";
           result.append(s);
           s="";
           count=0;
          }
          else s=s+"  ";
        }
      }
      if (s!="") result.append(s);
    }
    public boolean bsushu(int n)
    {
      int m;
      if(n<=3)  return true;
      for(m=2;m<=Math.sqrt(n);m++)
        if((n%m)==0) return false;
      return true;
    }

    }
      

  8.   

    楼上的程序没有实现,
    不过我想,我大概知道错误之处了,用g.drawString输出时用循环来实现多行的分行输出,循环变量就是那个a,控制输出的位置!
    大概就是这样,谢了各位,我还需多多努力!!