你说的可是com.borland.jbcl.*?
你装了JBuilder(4)吗?在安装目录下的src里你可以看到jbcl-src.jar ... 那是源代码, 编译好的在lib下的jbcl里

解决方案 »

  1.   

    jbuilder里有,在组件面板里添加后才可以使用
      

  2.   

    感谢楼上的高手!我都已加分,如有时间,请帮我编译一下这个文件,这里就用到了borland.jbcl.*包,另外50分相谢!
    /*源程序清单5-22*/import java.net.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import javax.swing.*;
    import com.borland.jbcl.layout.*;
    import java.io.*;
    import java.util.*;public class TalkApplet extends JApplet implements Runnable
    {
      boolean isStandalone = false;
      Label userInfo = new Label();
      TextField userText = new TextField();
      Label label1 = new Label();
      TextArea messageText = new TextArea();
      Button sendButton = new Button();
      java.awt.List userList = new java.awt.List();  URL chatURL;
      URLConnection connect;
      //用于标识用户是否登录
      boolean loggedin=false;
      String username;
      Thread pollThread=null;
      PaneLayout paneLayout1 = new PaneLayout();
      /**Get a parameter value*/
      public String getParameter(String key, String def)
      {
        return isStandalone ? System.getProperty(key, def) :
          (getParameter(key) != null ? getParameter(key) : def);
      }  /**Construct the applet*/
      public TalkApplet()
      {
      }  /**Initialize the applet*/
      public void init()
      {
        try
        {
          jbInit();
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
      /**Component initialization*/
      private void jbInit() throws Exception {
        if(pollThread!=null)
          return;
        userInfo.setText("请输入用户名(请不要超过10个字符):");
        this.setSize(new Dimension(400,300));
        this.getContentPane().setLayout(paneLayout1);
        label1.setText("聊天内容:");
        messageText.setEditable(false);
        sendButton.setLabel("发送");
        sendButton.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            sendButton_actionPerformed(e);
          }
        });
        userText.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            userText_actionPerformed(e);
          }
        });
        this.getContentPane().add(userInfo, new PaneConstraints("userInfo", "userInfo", PaneConstraints.ROOT, 1.0f));
        this.getContentPane().add(userText, new PaneConstraints("userText", "userInfo", PaneConstraints.BOTTOM, 0.9166667f));
        this.getContentPane().add(messageText, new PaneConstraints("messageText", "userText", PaneConstraints.BOTTOM, 0.90181816f));
        this.getContentPane().add(userList, new PaneConstraints("userList", "messageText", PaneConstraints.TOP, 0.24193548f));
        this.getContentPane().add(sendButton, new PaneConstraints("sendButton", "userList", PaneConstraints.LEFT, 0.6125f));
        this.getContentPane().add(label1, new PaneConstraints("label1", "sendButton", PaneConstraints.BOTTOM, 0.6f));
        chatURL=getCodeBase();
        int currPriority=Thread.currentThread().getPriority();
        int newPriority=currPriority==Thread.MIN_PRIORITY?Thread.MIN_PRIORITY:currPriority-1;
        pollThread=new Thread(this,"talkPoll");
        pollThread.setDaemon(true);
        pollThread.setPriority(newPriority);
        pollThread.start();
      }  /**Get Applet information*/
      public String getAppletInfo()
      {
        return "Applet Information";
      }
      /**Get parameter info*/
      public String[][] getParameterInfo()
      {
        return null;
      }  public synchronized void start()
      {
        if(!isLoggedin()&&username!=null)
          login();
        if(pollThread!=null&&pollThread.isAlive())
        {
          pollThread.resume();
        }
        else
        {
          pollThread=new Thread(this,"talkPoll");
          pollThread.setDaemon(true);
          pollThread.start();
        }
      }
      //当Applet在浏览器中不可见时,就挂起线程pollthread,并退出"聊天室"
      public synchronized void stop()
      {
        if (pollThread.isAlive())
        {
          pollThread.suspend();
        }
        logout();
      }  public synchronized void destroy()
      {
        if (pollThread != null && pollThread.isAlive())
        {
           pollThread.stop();
           pollThread = null;
         }
         logout();
      }  //每隔3秒从服务器中取别的用户输入的信息和加入聊天室的用户
      public void run()
      {
        while (!Thread.interrupted())
        {
    //若用户已经登陆,则不时的取回别的用户输入的信息
    //和机如的的用户名
    if (isLoggedin())
    {
      pollList();
      poll();
    }
    //若没有用户登陆,则取回正在聊天室中的用户
    else
    {
      pollList();
    }
    try
    {
      //睡眠3秒钟
      Thread.sleep(1000*3);
    }
    catch (InterruptedException e)
    {
    }
          }
        }  //登陆到服务器
      private void login()
      {
         if (username ==null) return;
         String queryString = "chatservlet?mode=login&user="+URLEncoder.encode(username);
         //与服务器通信
         try
         {
    connect = (new URL(chatURL,queryString)).openConnection();
    connect.setDefaultUseCaches(false);
    connect.setUseCaches(false);
    connect.setDoInput(true);
    connect.setDoOutput(false);
    connect.connect();
    DataInputStream in = new DataInputStream(connect.getInputStream());
    String response = in.readLine();
    if (response.startsWith("+"))
    {
      //标识用户已经登陆
      setLoggedin(true);
      showStatus("登录用户名:" + username);
      //提示用户输入信息
      userInfo.setText("请输入你需要发送的信息:");
      repaint();
    }
    else
    {
      showStatus("Error logging in " + response);
      System.err.println("Error logging in " + response);
    }
        }
        catch (MalformedURLException e2)
        {
    System.err.println("MalformedURLException logging in!");
    e2.printStackTrace(System.err);
    showStatus("Error logging in!");
        }
        catch (IOException e1)
        {
    System.err.println("IOException logging in!");
    e1.printStackTrace(System.err);
    showStatus("Error logging in!");
        }
      } //退出聊天室
      private void logout()
      {
        if (!isLoggedin() || username ==null)
        {
    return;
        }
        String queryString = "chatservlet?mode=logout&username=" +URLEncoder.encode(username);
        //与服务器通信
        try
        {
    connect = (new URL(chatURL,queryString)).openConnection();
    connect.setUseCaches(false);
    connect.setDoInput(true);
    connect.setDoOutput(false);
    connect.connect();
    DataInputStream in = new DataInputStream(connect.getInputStream());
    String response = in.readLine();
    if (response.startsWith("+"))
    {
      //标识用户已经退出聊天室
      setLoggedin(false);
         showStatus(username + "离开聊天室!");
    }
    else
    {
      showStatus("Error logging out" + response);
      System.err.println("Error logging out" + response);
    }
        }
        catch (MalformedURLException e2)
        {
    System.err.println("MalformedURLException logging out!");
    e2.printStackTrace(System.err);
    showStatus("Error logging out!");
        }
        catch (IOException e1)
        {
    System.err.println("IOException logging out!");
    e1.printStackTrace(System.err);
    showStatus("Error logging out!");
        }
       }  //发送用户输入的信息
      private void send()
      {
        String message = userText.getText();
        //用户输入空字符串不发送
        if (message.equals(""))
        {
          return;
        }
        //清除用户在Applet中输入的内容
        userText.setText("");
        showStatus("发送信息!");
        String queryString = "chatservlet?mode=send&user="+URLEncoder.encode(username);
        queryString = queryString + "&message="+URLEncoder.encode(message);
        try
        {
          connect = (new URL(chatURL,queryString)).openConnection();
          connect.setUseCaches(false);
          connect.setDoInput(true);
          connect.setDoOutput(false);
          connect.connect();
          DataInputStream in = new DataInputStream(connect.getInputStream());
          String response = in.readLine();
          if (response.startsWith("+"))
          {
         showStatus("信息发送出去了");
           }
          else
          {
    showStatus("发送信息错误 " + response);
    System.err.println("Error sending message " + response);
    }
        }
        catch (MalformedURLException e2)
        {
          System.err.println("MalformedURLException logging in!");
          e2.printStackTrace(System.err);
          showStatus("Error logging in!");
         }
        catch (IOException e1)
        {
    System.err.println("IOException logging in!");
    e1.printStackTrace(System.err);
    showStatus("Error logging in!");
        }
      }  //返回所有用户输入的信息
      private void poll()
      {
        String queryString = "chatservlet?mode=poll&user=" +URLEncoder.encode(username);
        try
        {
    DataInputStream in = new DataInputStream(
    new URL(chatURL,queryString).openStream());
    String nextLine = in.readLine();
    if (!nextLine.startsWith("+"))
    {
      showStatus("Error getting messages from server!");
      System.err.println("Error getting messages from server!");
      return;
    }
    nextLine = in.readLine();
    while (nextLine != null && !nextLine.equals("."))
    {
      System.err.println(nextLine);
      messageText.appendText(nextLine + "\r\n");
      repaint();
      nextLine = in.readLine();
    }
        }
        catch (IOException e)
        {
    System.err.println("IOException poll!");
    e.printStackTrace(System.err);
        }
      }  //返回正在聊天室中的用户
      private void pollList()
      {
    String queryString = "chatservlet?mode=list";
    Vector users = new Vector();
    try
      {
      URL listURL = new URL(chatURL,queryString);
      URLConnection listConn = listURL.openConnection();
      listConn.setDefaultUseCaches(false);
      listConn.setUseCaches(false);
      listConn.connect();
      DataInputStream in = new DataInputStream(
      listConn.getInputStream());
      String nextLine = in.readLine();
      if (!nextLine.startsWith("+"))
      {
        showStatus("Error getting userlist from server!");
        return;
      }
      nextLine = in.readLine();
      while (nextLine != null && !nextLine.equals("."))
      {
        users.addElement(nextLine);
        nextLine = in.readLine();
       }
       //清除旧的用户表,加入新的
       if (!users.isEmpty())
       {
         userList.clear();
                int size = users.size();
         for (int I=0;I<size ;I++ )
                 {
    userList.addItem((String)users.elementAt(I));
         }
        }
        else
        {
    userList.clear();
    userList.addItem("None logged in!");
        }
        repaint();
    }
    catch (IOException e)
    {
      System.err.println("IOException poll!");
      e.printStackTrace(System.err);
      showStatus("Error Checking Message!");
    }
      }  //判断用户是否已经登陆到聊天室
      public boolean isLoggedin()
      {
        return loggedin;
      }  //设置用户是否登陆的状态
      protected void setLoggedin(boolean newval)
      {
        loggedin = newval;
      }  void sendButton_actionPerformed(ActionEvent e)
      {
        sendText();
      }  void sendText()
      {
        if (isLoggedin())
        {
        send();
        }
        else
        {
    username = userText.getText();
    if (username.length()>10)
    {
         showStatus("请不要超过10个字符!");
    }
    else
    {
      userText.setText("");
      login();
    }
          }
      }  void userText_actionPerformed(ActionEvent e)
      {
        sendText();
      }
    }