如何将下面这个客户端程序在JBuilderX中运行???

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

import   java.awt.*;  
  import   java.awt.event.*;  
  import   java.util.*;  
   
  public   class   webclient   extends   closeableframe  
          implements   runnable,   interruptible,   actionlistener   {  
      public   static   void   main(string[]   args)   {  
          new   webclient("web   client");  
      }  
   
      private   labeledtextfield   hostfield,   portfield,  
                      requestlinefield;  
      private   textarea   requestheadersarea,   resultarea;  
      private   string   host,   requestline;  
      private   int   port;  
      private   string[]   requestheaders   =   new   string[30];  
      private   button   submitbutton,   interruptbutton;  
      private   boolean   isinterrupted   =   false;  
   
      public   webclient(string   title)   {  
          super(title);  
          setbackground(color.lightgray);  
          setlayout(new   borderlayout(5,   30));  
          int   fontsize   =   14;  
          font   labelfont   =  
              new   font("serif",   font.bold,   fontsize);  
          font   headingfont   =  
              new   font("sansserif",   font.bold,   fontsize+4);  
          font   textfont   =  
              new   font("monospaced",   font.bold,   fontsize-2);  
          panel   inputpanel   =   new   panel();  
          inputpanel.setlayout(new   borderlayout());  
          panel   labelpanel   =   new   panel();  
          labelpanel.setlayout(new   gridlayout(4,1));  
          hostfield   =   new   labeledtextfield("host:",   labelfont,"127.0.0.1",  
                                                                            30,   textfont);  
          portfield   =   new   labeledtextfield("port:",   labelfont,  
                                                                            "8080",   5,   textfont);  
          //   use   http   1.0   for   compatibility   with   the   most   servers.  
          //   if   you   switch   this   to   1.1,   you   *must*   supply   a  
          //   host:   request   header.  
          requestlinefield   =  
              new   labeledtextfield("request   line:",   labelfont,  
                                                        "get   /   http/1.0",   50,   textfont);  
          labelpanel.add(hostfield);  
          labelpanel.add(portfield);  
          labelpanel.add(requestlinefield);  
          label   requestheaderslabel   =  
              new   label("request   headers:");  
          requestheaderslabel.setfont(labelfont);  
          labelpanel.add(requestheaderslabel);  
          inputpanel.add(labelpanel,   borderlayout.north);  
          requestheadersarea   =   new   textarea(5,   80);  
          requestheadersarea.setfont(textfont);  
          inputpanel.add(requestheadersarea,   borderlayout.center);  
          panel   buttonpanel   =   new   panel();  
          submitbutton   =   new   button("submit   request");  
          submitbutton.addactionlistener(this);  
          submitbutton.setfont(labelfont);  
          buttonpanel.add(submitbutton);  
          inputpanel.add(buttonpanel,   borderlayout.south);  
          add(inputpanel,   borderlayout.north);  
          panel   resultpanel   =   new   panel();  
          resultpanel.setlayout(new   borderlayout());  
          label   resultlabel   =  
              new   label("results",   label.center);  
          resultlabel.setfont(headingfont);  
          resultpanel.add(resultlabel,   borderlayout.north);  
          resultarea   =   new   textarea();  
          resultarea.setfont(textfont);  
          resultpanel.add(resultarea,   borderlayout.center);  
          panel   interruptpanel   =   new   panel();  
          interruptbutton   =   new   button("interrupt   download");  
          interruptbutton.addactionlistener(this);  
          interruptbutton.setfont(labelfont);  
          interruptpanel.add(interruptbutton);  
          resultpanel.add(interruptpanel,   borderlayout.south);  
          add(resultpanel,   borderlayout.center);  
          setsize(600,   700);  
          setvisible(true);  
      }  
   
      public   void   actionperformed(actionevent   event)   {  
          if   (event.getsource()   ==   submitbutton)   {  
              thread   downloader   =   new   thread(this);  
              downloader.start();  
          }   else   if   (event.getsource()   ==   interruptbutton)   {  
              isinterrupted   =   true;  
          }    
      }  
   
      public   void   run()   {  
          isinterrupted   =   false;  
          if   (haslegalargs())    
              new   httpclient(host,   port,   requestline,  
            requestheaders,   resultarea,   this);  
      }  
                                                     
      public   boolean   isinterrupted()   {  
          return(isinterrupted);  
      }  
   
      private   boolean   haslegalargs()   {  
          host   =   hostfield.gettextfield().gettext();  
          if   (host.length()   ==   0)   {  
              report("missing   hostname");  
              return(false);  
          }  
          string   portstring   =  
              portfield.gettextfield().gettext();  
          if   (portstring.length()   ==   0)   {  
              report("missing   port   number");  
              return(false);  
          }  
          try   {  
              port   =   integer.parseint(portstring);  
          }   catch(numberformatexception   nfe)   {  
              report("illegal   port   number:   "   +   portstring);  
              return(false);  
          }  
          requestline   =  
              requestlinefield.gettextfield().gettext();  
          if   (requestline.length()   ==   0)   {  
              report("missing   request   line");  
              return(false);  
          }  
          getrequestheaders();  
          return(true);  
      }  
   
      private   void   report(string   s)   {  
          resultarea.settext(s);  
      }  
   
      private   void   getrequestheaders()   {  
          for(int   i=0;   i<requestheaders.length;   i++)  
              requestheaders[i]   =   null;  
          int   headernum   =   0;  
          string   header   =  
              requestheadersarea.gettext();  
          stringtokenizer   tok   =  
              new   stringtokenizer(header,   "\r\n");  
          while   (tok.hasmoretokens())  
              requestheaders[headernum++]   =   tok.nexttoken();  
      }  
  }  
   
  请说得详细一点,我对jbuilder不是很熟悉.     ^_^  
  (如果按照普通的gui程序编译的时候会抛出一大堆错误.如下:  
   
  "webclient.java":   cannot   resolve   symbol:   class   closeableframe   in   class   webclient   at   line   5,   column   32  
  "webclient.java":   cannot   resolve   symbol:   class   interruptible   in   class   webclient   at   line   6,   column   26  
  "webclient.java":   interface   expected   here   at   line   6,   column   26  
  "webclient.java":   cannot   resolve   symbol:   class   labeledtextfield   in   class   webclient   at   line   11,   column   11  
  "webclient.java":   cannot   resolve   symbol:   method   setbackground   (java.awt.color)in   class   webclient   at   line   22,   column   5  
  "webclient.java":   cannot   resolve   symbol:   method   setlayout   (java.awt.borderlayout)in   class   webclient   at   line   23,   column   5  
  "webclient.java":   cannot   resolve   symbol:   class   labeledtextfield   in   class   webclient   at   line   35,   column   21  
  "webclient.java":   cannot   resolve   symbol:   class   labeledtextfield   in   class   webclient   at   line   37,   column   21  
  "webclient.java":   cannot   resolve   symbol:   class   labeledtextfield   in   class   webclient   at   line   43,   column   11  
  "webclient.java":   cannot   resolve   symbol:   method   add   (java.awt.panel,java.lang.string)in   class   webclient   at   line   62,   column   5  
  "webclient.java":   cannot   resolve   symbol:   method   add   (java.awt.panel,java.lang.string)in   class   webclient   at   line   78,   column   5  
  "webclient.java":   cannot   resolve   symbol:   method   setsize   (int,int)in   class   webclient   at   line   79,   column   5  
  "webclient.java":   cannot   resolve   symbol:   method   setvisible   (boolean)in   class   webclient   at   line   80,   column   5  
  "webclient.java":   reference   to   thread   is   ambiguous;   both   method   thread(java.lang.runnable)   in   java.lang.thread   and   method   thread(java.lang.string)   in   java.lang.thread   match   at   line   85,   column   27  
  "webclient.java":   cannot   resolve   symbol:   class   httpclient   in   class   webclient   at   line   95,   column   11  
 

· 网友精彩回答:

发表者:1goldenage1

你在jb中new   project     ->     new   class时向导会帮你加上package的,如果没包名可能绘出现找不到用户定义的类的情况.

发表者:dlxu

socketutil这个类找不到

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved