qq对话java代码 交谈代码

qq聊天界面怎么写啊,用java语言写

爱应用团队为你解答

创新互联是一家专注于成都网站设计、网站建设、外贸网站建设与策划设计,五华网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:五华等地区。五华做网站价格咨询:18982081108

网络资料

package cn.myself.myproject.FrameProject;import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.Insets;import javax.swing.Icon;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JList;

import javax.swing.JPanel;

import javax.swing.JTextField;import cn.myself.myproject.employeepj.view.common.CenterWindow;

/**

* 程序功能:QQ登陆面板

* 学习内容:GridBagLayout布局方式的学习

* 以GridBagLayout方式布局的容器,其容器中的每个组件必须由一个GridBagConstrains类的实例对象进行大小,位置等约束。

* @author huliu 2009-06-26

* 难题:a.帐号后面是什么框?

* b.图片的相对路径怎么设置?

*/

public class QQRegistBoard extends JFrame{

JPanel p1;

GridBagLayout gb1;

GridBagConstraints gbc1;

JButton btn1,btn2;

JLabel label0,label1,label2,label3,label4,label5;

JTextField text1,text2;

JComboBox box1,box2;

JCheckBox check1,check2;

JList list1;

/**

* 构造方法

*/

public QQRegistBoard(){

super("2009正式版(huliu)");

p1=new JPanel();

gb1=new GridBagLayout();

gbc1=new GridBagConstraints();

p1.setLayout(gb1);//GridBagLayout布局。网袋布局

getContentPane().add(p1); //取得当前容器对象

this.setSize(350,250);

CenterWindow.centerW(this);

Icon icon1 = new ImageIcon("./QQ2.jpg");

// Icon icon1 = new ImageIcon("./QQ.jpg"); //加载图片,当前目录下的QQ.jpg

// Icon icon1 = new ImageIcon("src/cn/mysef/images/QQ1.jpg");

label0=new JLabel(icon1);

label1=new JLabel("帐号:");

label2=new JLabel("注册新帐号");

label3=new JLabel("密码:");

label4=new JLabel("取回密码");

label5=new JLabel("状态:");

text1=new JTextField(10);

text2=new JTextField(10);

String[] str1={"313558851","313857401","690442763"};

box1=new JComboBox(str1);

box1.setEditable(true);//设置ComboBox字段值是否为可编辑

box2=new JComboBox();

check1=new JCheckBox("记住密码",true);

check2=new JCheckBox("自动登录");

btn1=new JButton("设置");

btn2=new JButton("登录");

p1.add(label0,GBC(0,0,3,1,new Insets(5,2,2,4)));//图片

p1.add(label1,GBC(1,0,1,1,new Insets(4,2,2,4)));

p1.add(box1, GBC(1,1,1,1,new Insets(4,2,2,0)));

//p1.add(text2,GBC(1,1,1,1));

p1.add(label2,GBC(1,2,1,1,new Insets(4,2,2,3)));

p1.add(label3,GBC(2,0,1,1,new Insets(4,2,2,3)));

p1.add(text1, GBC(2,1,1,1,new Insets(5,2,2,3)));

p1.add(label4,GBC(2,2,1,1,new Insets(4,2,2,3)));

p1.add(label5,GBC(3,0,1,1,new Insets(4,2,2,3)));

p1.add(check1,GBC(3,1,1,1,new Insets(4,2,2,3)));

p1.add(check2,GBC(3,2,1,1,new Insets(4,2,2,3)));

p1.add(btn1 ,GBC(4,0,1,1,new Insets(4,2,2,3)));

p1.add(btn2 ,GBC(4,2,1,1,new Insets(4,2,2,3)));

}

/**

* GBC方法:功能是设计以GridBagLayout方式布局的容器(如Panel容器对象)内的组件的位置,大小等约束的。

* @param gridy

* @param gridx

* @param gridwidth

* @param gridheight

* @return GridBagStraints实对象

* Insets(int top, int left, int bottom, int right),与其它组件之间距离(上,左,下,右)

*/

public GridBagConstraints GBC(int gridy,int gridx,int gridwidth,int gridheight,Insets insets){

GridBagConstraints gbc1=new GridBagConstraints();

gbc1.gridx=gridx; //列

gbc1.gridy=gridy; //行

gbc1.gridwidth=gridwidth;//宽度

gbc1.gridheight=gridheight; //高度

//insets=new Insets(1,1,1,1);

gbc1.insets=insets;

return gbc1;

}

public static void main(String[] args){

new QQRegistBoard().setVisible(true);

}}

望采纳

用JAVA做一个QQ对话框,怎样才能实现在下面的文本框里输入字符,在上面的显示

用GUI 加JButton 监听时间 new JTextArea(){text,text1}

比如 你用text 作输入框 text1作接收框

然后 text1.setText(text.getText),新文本框就可以获得你输入得内容,但是会出现问题,那就是,后面输入得内容会覆盖 前面得内容!

最好 改成 text1.append(text.getText)

关闭 那个JBotton 按钮 也加个监听时间 System.exit(0);

如果还不明白,可以询问本人的代码!

关于仿QQ聊天对话框的JAVA代码

1、swing的界面可以直接用netbeans画出来嘛。

2、可以把输出的聊天内容都放在一个StringBuffer里,每打出一句话,就把这句话追加在StringBuffer,然后把StringBuffer里的内容输出到Textarea中。

3、好友列表可以用JList

QQ客户端Java代码 问题 懂得进来看看吧 完全看不懂 求详细注释

new Thread(){

public void run(){

while(true){

实例一个线程

try {

ObjectInputStream ois=

new ObjectInputStream(

s.getInputStream());

打开流通道 接收信息

if("login".equals(type)){

ListString users=msg.getUserList();

if(dlm.getSize()==0){

for(int i=0;iusers.size();i++){

dlm.addElement(users.get(i));

}

如果type为‘login’的话获取msg中的userlist()

Object obj=ois.readObject();

Message msg=(Message)obj;

String type=msg.getType();

把接收的信息转成message类型 获取msg中的type信息

System.out.println("hhhh");

debug用 无意义

if("login".equals(type)){

ListString users=msg.getUserList();

if(dlm.getSize()==0){

for(int i=0;iusers.size();i++){

dlm.addElement(users.get(i));

}

如果type为“login”拿就获取msg中的userlist() 如果dlm中信息量为0 则把userlist()内信息赋给dlm

}else{

dlm.addElement(msg.getFromUser());

}

否则dlm增加信息为msg中的formuser();

String oldMes=showMessage.getText();

String newMes=msg.getSendContent();

if(oldMes==null||"".equals(oldMes)){

showMessage.setText(newMes);

}else{

String allMes=oldMes+"\n"+newMes;

showMessage.setText(allMes);

}

获取原始信息 新增信息 若原始信息为空则显示新信息 否则显示原始信息 + 换行 + 新信息

else if("logout".equals(type)){

String name2=msg.getFromUser();

if(name2.equals(name)){

dlm.removeAllElements();

}else{

dlm.removeAllElements();

ListString users=msg.getUserList();

for(int i=0;iusers.size();i++){

dlm.addElement(users.get(i));

}

}

如果type==“logout” 如果下线的用户是自己则删除dlm所有信息 如果不是自己则dlm删除后重新获取userlist()

下面的都被注释掉了

求一个用java编写的套接字实现类似于QQ对话的程序,急用

有两个类,服务器和客户端、

服务器类代码:

package chat;

import java.io.*;

import java.net.*;

import java.util.*;

/*服务器类*/

public class Server {

public ListSocket socketList = new ArrayListSocket();//存放所有连接的客户端的集合

public ServerSocket server;//服务器

public int portNum;//端口号

public Server(int portNum){

this.portNum = portNum;

}

public void innit(){

try {

server = new ServerSocket(portNum);

System.out.println("服务器开启成功!");

int socketNum = 0;

while(true){

Socket socket = server.accept();//被动等待客户端的连接

socketNum++;

System.out.println("第"+socketNum+"个客户端连接成功!!");

socketList.add(socket);//连接的客户端存放到集合里面

new RWThread(socket).start();

}

} catch (IOException e) {

e.printStackTrace();

}

}

class RWThread extends Thread{//接收和发送消息的线程

public Socket socket;

public RWThread(Socket socket){

this.socket = socket;

}

public void run() {

super.run();

try {

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

while(true){

String message = br.readLine();

System.out.println(message);//接收客户端发来的消息

for(int i=0;isocketList.size();i++){//发送给所有连接的客户端

PrintWriter pw = new PrintWriter(new OutputStreamWriter(socketList.get(i).getOutputStream()));

pw.println(message);

pw.flush();

}

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) {

int portNum = 8888;//创建服务器的端口号

Server server = new Server(portNum);

server.innit();

}

}

客户端类:

package chat;

import java.io.*;

import java.net.*;

import java.util.*;

/*客户端类*/

public class Client {

public Socket socket;

public Client(){

Scanner sca = new Scanner(System.in);

try {

socket = new Socket("127.0.0.1",8888);//创建客户端

new ReadThread(socket).start();//开启读取从服务器端发来的信息

while(true){

PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));

String message = sca.nextLine();

pw.println(message);//向服务器发送信息

pw.flush();

}

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

System.out.println("错误:服务器未开启!!!");

}

}

class ReadThread extends Thread{//读取服务器发来信息的线程

public Socket socket;

public ReadThread(Socket socket){

this.socket = socket;

}

public void run() {

super.run();

try {

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

while(true){

String message = br.readLine();

System.out.println(message);//输出信息

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) {

Client client = new Client();

}

}

现打开服务器类,然后可以打开多个客户端进行聊天


本文标题:qq对话java代码 交谈代码
链接URL:http://csdahua.cn/article/doocihi.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流