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 实际项目网上非常的多,大家可以自己去搜索下。合理利用网络...
叱干采信润: //服务器端代码 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,编译并运行程序.