请我解决一下这个问题?

问题描述

我刚写了一个基于java AWT窗体的聊天服务端,可是我明明调用了setVisible(true),却看不见任何窗口,如果有时间的话,帮我看看是怎么回事,谢了(有点长!)/** * @(#)chatroom.java * * chatroom application * * @author * @version 1.00 2008/9/20 */ import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; public class chatroom extends Frame implements Runnable{sender se;reciver re;myPanel panel;Thread t1,t2;String s1,s2;ServerSocket ss;public chatroom()throws Exception{try{ss=new ServerSocket(4321);}catch(Exception e){e.printStackTrace();}panel=new myPanel();se=new sender(ss);reciver re=new reciver(ss);t1=new Thread(se);t2=new Thread(re);add(panel);s1=new String("");s2=new String("");setSize(300,500);setVisible(true);}public void run(){t1.start();t2.start();while(true){if((s1=re.getMsg())!="") panel.text.append(s1+"n");if((s2=panel.getMsg())!="")se.msg=s1;if(t1==null || t2==null)break;}}public static void main(String[] args)throws Exception{chatroom cr=new chatroom();Thread t=new Thread(cr);t.start();}}class sender implements Runnable{Object obj;Socket s;OutputStream os;PrintStream ps;String msg;public sender(){}public sender(ServerSocket ss)throws Exception{s=ss.accept();os=s.getOutputStream();ps=new PrintStream(os);msg="";}public void run() {while(true){ try{ if(msg!=""){ ps.print(msg); msg=""; } else if(msg=="bye") break; else wait(); }catch(Exception e){ e.printStackTrace(); }}try{s.close();ps.close();}catch(Exception e){e.printStackTrace();}}public void getMsg(String s){ msg=s; notify();}}class reciver implements Runnable{Socket s;InputStream is;DataInputStream dis;String msg;public reciver(){}public reciver(ServerSocket ss)throws Exception{s=ss.accept();is=s.getInputStream();dis=new DataInputStream(is);msg="";}public void run(){while(true){try{ msg=dis.readLine(); if(msg=="bye") break;}catch(Exception e){e.printStackTrace();}}try{s.close();dis.close();}catch(Exception e){e.printStackTrace();}}public String getMsg(){if(msg!="")try{return msg;}finally{msg="";}return null;}}class myPanel extends Panel{TextArea text;TextField tf;String msg;public myPanel(){msg="";setLayout(new BorderLayout());text=new TextArea(50,100);tf=new TextField();text.setEditable(false);//tf.setToolTipText("Enter your message here");add("Center",text);add("South",tf);tf.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){if(tf.getText()!="")msg=tf.getText();tf.setText("");}});}public String getMsg(){return msg;}}

解决方案

对socket不是很懂,你把chatroom ctor改一下,估计与线程有关系public chatroom() throws Exception {ss = new ServerSocket(1234);panel = new myPanel();add(panel);s1 = new String("");s2 = new String("");setSize(300, 500);setVisible(true);se = new sender(ss);reciver re = new reciver(ss);t1 = new Thread(se);t2 = new Thread(re);}

时间: 2024-09-20 12:32:14

请我解决一下这个问题?的相关文章

javaweb-ssh2整合项目,quartz调度任务报的错,请高手解决,本人感激不尽。

问题描述 ssh2整合项目,quartz调度任务报的错,请高手解决,本人感激不尽. 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error creating bean

oracle10错误-linux5.5安装oracle出现错误!请高手解决。急

问题描述 linux5.5安装oracle出现错误!请高手解决.急 oracle运行到最后一步报错,oracle Database configuration Assistant Failed INFO: Starting to execute configuration assistantsINFO: Command = /home/oracle/product/10/bin/dbca -progress_only -createDatabase -templateName General_P

java 的DES加密问题,请大家解决一下,就是输出密文只有15位,还有帮我修改一下代码,可以达到每轮输出,谢谢好心的人了啊。

问题描述 java的DES加密问题,请大家解决一下,就是输出密文只有15位,还有帮我修改一下代码,可以达到每轮输出,谢谢好心的人了啊.importjavax.swing.*;importjava.awt.event.*;importjava.awt.*;[size=10px]classmyframeextendsJFrameimplementsActionListener{JTextAreainput;JTextAreamiyue;JTextAreaoutput;JLabell1,l2,l3;J

请帮忙解决有关数据结构的问题,谢谢。

问题描述 请帮忙解决有关数据结构的问题,谢谢. 1.已知二叉树的中序序列为DBGEAFC,后序序列为DGEBFCA,给出对应的二叉树. 2.设二叉树t的对称序序列为BADCE,后序序列为BDECA,请给出二叉树. 谢谢. 解决方案 .已知二叉树的后序序列和中序序列,求解树. 1.确定树的根.树根是当前树中所有元素在后序遍历中最后出现的元素. 2.求解树的子树.找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树.若根节点左边或右边为空,则该方向子树为空:若根节点

我安装了IIS,并配置好了,但还是运行不了ASP页面,它会报一个文件下载安全警报的对话框,这是怎么回事?请帮忙解决一下,谢谢

问题描述 我安装了IIS,并配置好了,但还是运行不了ASP页面,它会报一个文件下载安全警报的对话框,这是怎么回事?请帮忙解决一下,谢谢 解决方案 解决方案二:iis配置的问题解决方案三:ASP??估计你的IIS没有装好吧.解决方案四:如果没有猜错---你没有安装.netframework~~~~而且没有使用nerframework里面的aspnet_regiis程序来注册IIS.解决:安装netframework2.0打开运行输入cmd然后在dos界面下面输入cd(自己的安装系统盘):WINDO

容器“Collection的一个小程序编译时出现的错误,请帮忙解决一下

问题描述 容器"Collection的一个小程序编译时出现的错误,请帮忙解决一下"容器"Collection的一个小程序在windowsXp下的JDK1.5版本/*Collection方法*/importjava.util.*;publicclassTestCollection{publicstaticvoidmain(String[]args){Collectionc=newArrayList();c.add("hello");c.add(newName

关于jsp打包zip文件下载的问题,请帮忙解决。

问题描述 我现在需要在项目中实现对多个文件打包成zip下载.从网上找到一段代码如下,可用,但是,会提示getOutputStream已经被called的异常.不知道哪里的问题,请帮忙解决.另外这个代码是先保存为文件,然后再向reaponse输出流的,有没有直接压缩后就输出不保存本地文件的方法,请指教.另外,如果能够实现一次压缩多个文件夹就更好了.还有,zip文件是不是可以附带文本性的注释的呢?package com.xinkao.util;import java.io.BufferedInput

cloud foundry多节点安装出现问题,请帮忙解决

问题描述 我在安装cloudfoundry(4个节点)过程中出现如下问题和疑问,麻烦帮忙解决:InstallRestoftheComponents出现错误:执行~/dev_setup$bin/vcap_dev_setup-cdeployments/sample/multihost_mysql/rest.yml出现错误:Get:11http://us.archive.ubuntu.comlucid-updates/restrictedSources[2,196B]Get:12http://us.a

关于j2me语音问题,请高手解决,或者大家讨论讨论

问题描述 j2me录音的问题,得到的是一个ByteArrayOutputStream我现在的意思是想解析这个byte流.在byte流里边是如何存储的声音信息..比如声波,音强各项属性...请路过的高手解决..提供点参考资料..QQ:7170754email:hexiao_0215@126.com 解决方案 解决方案二:这取决于录音的格式.采样率和比特率.j2me录音时可以设置这些信息,比如:encoding=pcm&rate=8000&bits=8&channels=1但是不同手机

请高手解决NET问题。

问题描述 有关调用实时(JIT)调试而不是此对话框的详细信息,请参见此消息的结尾.**************异常文本**************System.ArgumentOutOfRangeException:startIndex不能大于字符串长度.参数名:startIndex在System.String.InternalSubStringWithChecks(Int32startIndex,Int32length,BooleanfAlwaysCopy)在QQCaptor.Tools.Fa