eclipse编写一个非常简单的聊天界面

作者&投稿:陆婉 (若有异议请与网页底部的电邮联系)
求一个用eclipse做的图形界面的简易聊天系统完整代码,能在一台电脑上测试的。~

你用Java开发吗,如果这点语言基础没有的话,还开发什么

package test;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class UserInterface extends JFrame implements WindowListener{ JFrame jf; JPanel jpan1,jpan2,jpan3; JLabel username,password,lspace; JTextField user,pass; JButton login,register; public void go(){ jf=new JFrame("UserInterface"); jf.setSize(350, 250); jf.setResizable(false); jf.setLayout(new GridLayout(6,1,0,5)); jpan1=new JPanel(); jpan2=new JPanel(); jpan3=new JPanel(); username=new JLabel("Username"); password=new JLabel("Password"); user=new JTextField(12); pass=new JTextField(12); login=new JButton("Login"); register=new JButton("Register"); jpan1.setSize(200, 50); jpan1.add(username); jpan1.add(user); jpan2.setSize(200, 50); jpan2.add(password); jpan2.add(pass); jpan3.setLayout(new FlowLayout(FlowLayout.CENTER,20,0)); jpan3.add(login); jpan3.add(register); lspace=new JLabel(); jf.add(lspace); jf.add(jpan1); jf.add(jpan2); lspace=new JLabel(); jf.add(lspace); jf.add(jpan3); lspace=new JLabel(); jf.add(lspace); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); } public static void main(String[] args){ UserInterface ui=new UserInterface(); ui.go(); } public void windowDeactivated(WindowEvent e){ } @Override public void windowActivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowClosed(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowClosing(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowIconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowOpened(WindowEvent arg0) { // TODO Auto-generated method stub }}

//服务器端代码  
import java.awt.FlowLayout;  
import java.io.DataInputStream;  
import java.io.DataOutputStream;  
import java.io.IOException;  
import java.net.ServerSocket;  
import java.net.Socket;  
import java.util.ArrayList;  
import java.util.Collection;  
import java.util.Iterator;  
  
import javax.swing.JFrame;  
import javax.swing.JScrollPane;  
import javax.swing.JTextArea;  
public class QLServer extends JFrame{  
    public JTextArea jtextarea = null;  
    public void lanuchFrame(String str){  
        this.setName(str);  
        init();  
    }  
    private void init() {  
        setLayout(new FlowLayout());  
        jtextarea =new JTextArea(20, 17);  
        jtextarea.setLineWrap(true);  
        jtextarea.setEditable(false);  
        this.getContentPane().add(new JScrollPane(jtextarea));  
        setVisible(true);  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        setSize(200,400);  
        setLocationRelativeTo(null);  
        setResizable(false);  
    }  
    ServerSocket server = null;  
    Collection cClients = new ArrayList<ClientConn>();//加个泛型  
    public void startServer() throws IOException{  
        while(true){  
            Socket s = server.accept();  
            cClients.add(new ClientConn(s));  
            jtextarea.append("new client login" + s.getInetAddress() + ":" + s.getPort()+"
");  
        }  
    }  
      
    public QLServer(int port,String str) throws IOException{  
        server = new ServerSocket(port);  
        lanuchFrame(str);  
    }  
      
    class ClientConn implements Runnable  
    {  
        Socket s = null;  
        public ClientConn(Socket s)  
        {  
            this.s = s;  
            (new Thread(this)).start();  
        }  
          
        public void send(String str) throws IOException  
        {  
              
            DataOutputStream dos = new DataOutputStream(s.getOutputStream());  
            dos.writeUTF(str);  
        }  
          
        public void dispose()//客户端下线  
        {  
            try {  
                if (s != null) s.close();  
                cClients.remove(this);  
                jtextarea.append("A client out! 
");  
                jtextarea.append("client count: " + cClients.size() + "

");  
            }  
            catch (Exception e)  
            {  
                e.printStackTrace();  
            }  
        }  
          
        public void run()  
        {  
            try {  
                DataInputStream dis = new DataInputStream(s.getInputStream());  
                String str = dis.readUTF();  
                while(str != null && str.length() !=0)  
                {  
                    System.out.println(str);  
                    for(Iterator it = cClients.iterator(); it.hasNext(); )  
                    {  
                        ClientConn cc = (ClientConn)it.next();  
                        if(this != cc)  
                        {  
                            cc.send(str+" "+s.getInetAddress().getHostName());  
                        }  
                    }  
                    str = dis.readUTF();//少了这句话会无限输出  
                    //send(str);  
                }  
                this.dispose();  
            }   
            catch (Exception e)   
            {  
                this.dispose();  
            }  
              
        }  
    }  
public static void main(String[] args) {  
    try {  
        QLServer qlserver = new QLServer(8888,"QLServer");  
        qlserver.startServer();  
    } catch (IOException e) {  
        e.printStackTrace();  
    }  
      
}  
}
import java.awt.FlowLayout;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;  
import java.io.BufferedReader;  
import java.io.DataInputStream;  
import java.io.DataOutputStream;  
import java.io.IOException;  
import java.io.InputStreamReader;  
import java.net.InetAddress;  
import java.net.Socket;  
  
import javax.swing.JButton;  
import javax.swing.JFrame;  
import javax.swing.JScrollPane;  
import javax.swing.JTextArea;  
//客户端代码  
public class QLClient extends JFrame implements ActionListener{  
    public JTextArea jtextarea1 = null;  
    public JTextArea jtextarea2 = null;  
    public JButton button = null;  
    Socket s =null;  
    public void launchFrame(String str){  
        this.setName(str);  
        init();  
    }  
    public QLClient(String str) throws IOException{  
        launchFrame(str);  
        s = new Socket("127.0.0.1",8888);//哪台电脑做服务器,IP地址改成那台机子的IP  
        (new Thread(new ServeConn())).start();  
    }  
    private void init() {  
        setLayout(new FlowLayout());  
        jtextarea1 =new JTextArea(17, 16);  
        jtextarea2 =new JTextArea(4, 16);  
        jtextarea1.setLineWrap(true);  
        jtextarea1.setEditable(false);  
        jtextarea2.setLineWrap(true);  
        button = new JButton("发送");  
        button.addActionListener(this);//绑定button事件  
        this.getContentPane().add(new JScrollPane(jtextarea1));  
        this.getContentPane().add(new JScrollPane(jtextarea2));  
        add(button);  
        setVisible(true);  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        setSize(200,470);  
        setLocationRelativeTo(null);  
        setResizable(false);  
          
    }  
    public void send(String str) throws IOException{  
        DataOutputStream dos = new DataOutputStream(s.getOutputStream());  
        dos.writeUTF(str);  
    }  
  
    public void actionPerformed(ActionEvent e) {  
        if(e.getSource()==button){  
            String sendStr = jtextarea2.getText();  
            if(sendStr.trim().length()==0){  
                return;  
            }  
            try {  
                this.send(sendStr);  
                jtextarea2.setText("");  
                InetAddress a;  
                a = InetAddress.getLocalHost();  
                String hostname = a.getHostName();  
                jtextarea1.append(sendStr+"("+hostname+")"+"
");  
            } catch (IOException e1) {  
                // TODO Auto-generated catch block  
                e1.printStackTrace();  
            }  
        }  
    }  
      
    class ServeConn implements Runnable{  
        public void run() {  
            if(s == null) return;  
            try {  
                DataInputStream dis = new DataInputStream(s.getInputStream());  
                String str = dis.readUTF();  
                while (str != null && str.length() != 0)  
                {  
                    //System.out.println(str);  
                    QLClient.this.jtextarea1.append(str + "
");//内部类用外类中的变量或方法加外类名  
                    str = dis.readUTF();  
                }  
            }   
            catch (Exception e)  
            {  
                e.printStackTrace();  
            }  
        }  
    }  
    //main主函数入口  
    public static void main(String[] args) throws IOException {  
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  
        QLClient qlclient = new QLClient("QLClient");  
        String str = br.readLine();  
        while(str!=null&&str.length()!=0){  
            qlclient.send(str);  
            str = br.readLine();//防止死循环  
        }  
        qlclient.s.close();  
    }  
}



模拟器打开app显示运行环境错误~请不要在模拟器或过于陈旧的android打...
第一,重新安装的童鞋卸载干净原先的安装包(例如gradle)再安装,路径应该是在C盘admin文件夹下,否则会出现第二次安装使用第一次安装的包的情况。第二,先是在exclipse安装了sdk并修改了host文件网络配置的童鞋,很有可能在重重安装之后,好不容易打开发现gradle构建不成功,提示网络链接问题。这时候,...

怎么检验java的环境变量是否正确
1,要明确java相关的环境变量有什么。它们包括:JAVA_HOME = jdk的安装路径 path = (在原有配置的最后增加)%JAVA_HOME%\\bin 作用:让系统识别java命令 CLASSPATH = .;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar;作用:让系统能够找到class文件 2,配置完毕后,就可以使用下面的一个小...

怎么配jsp
我说说吧,其实JSP不需要什么特别的配置的,说一下jdk和tomcat的基本配置,还有如何在myeclipse中添加tomcat吧.一、 JDK 安装完成后,要配置如下环境变量(我的电脑-属性-高级-环境变量)1) JAVA_HOME:jdk的安装路径,比如C:\\Program Files\\Java\\jdk1.6.0_01 2) classpath:jdk的安装路径\\lib,还要把"...

python编程语言的集成编译环境哪个好用
Pydev在社区用户的帮助,以及Liclipse, Squish, TraceTronic等公司\/社团的赞助下持续进行更新。 虽然Pydev是最好的开源python IDE,但是 它也和另一个名为Liclipse的产品一起打包,Liclipse是一个商业产品,同样也构建在eclipse上,提供了易用性改进和额外的主题选项。 除了python,Pydev也支持Jython and IronPython。 你...

安装myeclipse后是不是就不用安装eclipse了?
安装myeclipse之后就可以运行java,没有必要再安装eclipse。eclipse其实是精简的运行环境,没有多余的一些jar包和插件,所以下载下来双击即可运行,而myclipse是在eclipse的基础上,增加了很多插件,对功能进行了扩展,可以不用安装很多jar包, 像三大框架,都可以直接添加到项目中。

我们学JSP为什么需要安装那么多东西啊
3、eclipse是一个java开发的IDE。你在里面可以写jsp,它能帮你编写、排错、运行。当然你可以不用,用记事本+JDK命令行也可以完成这个任务,但是效率太低,也没有代码提示。4、myeclipse是一个eclipse插件,它比eclipse的开发环境更方便,提供模板,以及各种工具,方便开发并且提高效率,节省体力,是一个...

如何把fxml文件和java代码编写的事件控制器相关联
现在创建控制器来管理按钮事件。本例演示如何把FXML和Java代码编写的事件控制器相关联。在Projects窗口,右击 Sample.java,选择 Refactor-- Rename .输入FXMLExampleController后点击Refactor .打开FXMLExampleController.java删除代码,用下面的代替 Example 9 .Example 9 FXMLExampleController.java p...

用eclipse连接数据库(sql 2000)有错误,java.sql.SQLException: No s...
建路径...”→“Java 构建路径”→“库”→“添加外部 JAR...”,选择%ProgramFiles%\\sqljdbc_1.1 \\chs\\sqljdbc.jar 4、编写Java代码,如下:import java.sql.*;public class Test { public static void main(String[] srg) { String driverName = "com.microsoft.sqlserver.jdbc.SQLServer...

java安装jdk问题,高手帮忙解答
JDK是开发包,JRE是运行时环境。运行eclipse,需要JRE,用eclipse开发需要JDK。别纠结这事。举个例子,没有DirectX9.0你能跑起来游戏?没有VC++2005运行环境你能跑起来用VC++2005编写的程序?当然最新的是DirectX11和.net4.5了。

Python是什么
这时候针对出现的问题,找到对应解决办法,比如,你可以重新查看书本上的知识(关于基础语法问题),可以通过谷歌搜索碰到的编译错误(编辑器提示的错误),学习模仿别人已有的代码(写不出代码)等等。已实际项目来驱动学习,会让你成长非常的快。Python 实际项目网上非常的多,大家可以自己去搜索下。合理利用网络...

市中区18914285291: eclipse编写一个非常简单的聊天界面 -
叱干采信润: //服务器端代码 import java.awt.FlowLayout; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.Collection; ...

市中区18914285291: 用eclipse编一个即时聊天的程序 就像腾讯那样的 -
叱干采信润: 1.简单服务器端/* import java.net.*; import java.io.*;*/ ServerSocket server=null; try { server=new ServerSocket(%%1); }catch(Exception e){ System.out.println("不能监听:"+e.toString()); } Socket socket=null; try { socket=server.accept(); ...

市中区18914285291: 怎么用eclipse编写java程序 -
叱干采信润: 启动Eclipse,第一次启动软件时,会提示选择工作空间(WorkSpace),可在硬盘上新建一个文件夹作为工作空间,这个文件夹将会保存你所编写的所有的源代码.如何新建一个简单的Java工程.下图分别是填写工程名以及源码文件夹,一般...

市中区18914285291: 如何使用eclipse创建简单的servlet -
叱干采信润: 工具:电脑、eclipse工具 使用eclipse创建简单的servlet方法步骤如下: 1、首先,创建一个简单的动态web项目 文件--新建--项目2、选择dynamic web project,输入项目名称3、在一个包下创建一个简单的类4、这个类要继承javax.servlet.http...

市中区18914285291: 如何用Eclipse进行XML开发?
叱干采信润: Eclipse XML编辑器 Eclipse 已经包括一个非常简单的 XML 编辑器的源代码,这个编辑器只提供 XML 语法的突出显示.它继承 org.eclipse.ui.editors 包中包括的类,这...

市中区18914285291: 如何在Eclipse 中编写java程序 -
叱干采信润: 配置好环境后 public class test {/*** @param args*/ public static void main(String[] args) {//在这里 写代码 } } 写个一个非常简单的代码 public class test {/*** @param args*/ public static void main(String[] args) {//在这里 写代码 System.out.println("你好");// } }

市中区18914285291: 怎么使用eclipse编写java程序 -
叱干采信润: 1、在电脑中安装了jdk并且配置好了环境变量之后,我们可以直接打开eclipse开发工具 首先选择工作空间路径,也就是选择一下项目所在的文件夹2、确定了工作空间以后会打开主界面,首先显示的是welcome界面,我们直接关闭就可以,然后...

市中区18914285291: 怎么安装eclipse及如何用eclipse编写java程序 -
叱干采信润: Eclipse是Java开发的快捷工具,Eclipse本身不需要安装,直接解压即可使用,但是前提需要先安装哈好JDK,并且配置环境变量.工具/原料 JDK、Eclipse 方法/步骤1、下载相应版本的JDK,双击进行安装,接下来就是设置环境变量.2、选择...

市中区18914285291: 在EClipse中开发一个JAVA程序的步骤
叱干采信润: 在你的项目名右键点击,直接选择类就行了,如果是在同一个项目中要添加类,那么就只有一个Main方法. JAVA在同一个项目中只有1个Main方法. 如果你新建一个项目的话,步骤: 1.文件—新建—项目—JAVA项目—下一步—填写项目名称—完成 2.在你新建的项目名称右键点击新建—源文件—填写src—完成 3.在你的源文件src处右键点击新建—类—在这个窗体中填写你类的名字,然后下面有:你想创建哪些方法存根?找到main方法,打勾后点击完成就OK了

市中区18914285291: 如何使用eclipse编写运行java程序 -
叱干采信润: 1、首先是搭建Java开发环境,先要安装JDK,然后配置环境变量,之后安装eclipse.完成之后就可以编写Java程序了;2、搭建完成后打开eclipse;3、下面就开始新建Java工程.点击File——New——Java Project;4、输入工程名以“HelloWorld”为例,点击下一步;5、在出现的对话框中选择完成,结束;6、右击工程名称下面的src文件夹.点击New——Class;7、在对话框输入类名,注意名称要与工程名称一致!之后点击完成;8、编写代码;9、编译运行程序,点击工具栏里的绿点.运行程序,运行结果在下面的小框里显示.也可以直接按F11,编译并运行程序.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网