当前位置:编程学习 > JAVA >>

java 编写的简易QQ 客户端的界面显示不出来

import java.net.*;
import java.awt.BorderLayout;
import java.awt.TextArea;
import java.awt.event.*;
import java.io.*;

import javax.swing.*;

public class Client extends JFrame{

BufferedReader br = null;
// BufferedReader br2 = null;
PrintWriter pw = null;
Socket socket = null;
private JButton button=null;
private TextArea textArea=null;
private JTextField textField=null;
private String str=null;
private String str1=null;


public static void main(String[] args) {
// TODO Auto-generated method stub
Client frame=new Client();

frame.setTitle("QQ.client");
frame.setSize(500,300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

public Client() {
JPanel panel=new JPanel();
button=new JButton("发送");
textField=new JTextField(20);
panel.add(textField);
panel.add(button);
textArea=new TextArea();

this.add(new JScrollPane(textArea),BorderLayout.CENTER);
this.add(panel,BorderLayout.SOUTH);

try {
socket = new Socket("localhost", 8080);
InputStreamReader isr=new InputStreamReader(socket.getInputStream());
pw=new PrintWriter(socket.getOutputStream(),true);
br=new BufferedReader(isr);
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
str=textField.getText();
textArea.append("客户端 对 服务器说:"+str+"\r\n");
textField.setText("");
pw.println(str);
}
});
textField.addKeyListener(new KeyAdapter(){
@Override
public void keyPressed(KeyEvent arg0) {
if(arg0.getKeyChar()==arg0.VK_ENTER){
str=textField.getText();
textField.setText("");
textArea.append("客户端 对 服务器说:"+str+"\r\n");
pw.println(str);
}
// TODO Auto-generated method stub
}
});

while(true){
str1=br.readLine();
textArea.append("服务器 对 客户端说:"+str1+"\r\n");
}

} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} finally{
try {
br.close();
pw.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//客户端

//服务器
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

import javax.swing.*;

public class Main extends JFrame{
BufferedReader br = null;
//BufferedReader br2 = null;
PrintWriter pw = null;
Socket socket = null;
private JButton button=null;
private TextArea textArea=null;
private JTextField textField=null;
private String str=null;
private String str1=null;

public static void main(String[] args) {
// TODO Auto-generated method stub
Main frame=new Main();
frame.setTitle("QQ");
frame.setSize(500,300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

public Main() {
JPanel panel=new JPanel();
button=new JButton("send");
textField=new JTextField(20);
panel.add(textField);
panel.add(button);
textArea=new TextArea();

this.add(new JScrollPane(textArea),BorderLayout.CENTER);
this.add(panel,BorderLayout.SOUTH);
textArea=new TextArea();
//str=new String();
//str1=new String();
try {
ServerSocket serverSocket=new ServerSocket(8080);

System.out.println("我在8080端口监听");

socket=serverSocket.accept();
InputStreamReader isr=new InputStreamReader(socket.getInputStream());

br=new BufferedReader(isr);

pw=new PrintWriter(socket.getOutputStream(),true);

while(true){
str1=br.readLine();
textArea.append("客户端 对 服务器说:"+str1+"\r\n");



button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
str=textField.getText();
textArea.append("服务器 对 客户端说:"+str+"\r\n");
textField.setText("");
pw.println(str);
}
});

textField.addKeyListener(new KeyAdapter(){
@Override
public void keyPressed(KeyEvent arg0) {
if(arg0.getKeyChar()==arg0.VK_ENTER){

str=textField.getText();
textArea.append("服务器 对 客户端说:"+str+"\r\n");
textField.setText("");
pw.println(str);
}
// TODO Auto-generated method stub
}
});
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
br.close();
pw.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
--------------------编程问答-------------------- 在线等帮助! --------------------编程问答-------------------- 除
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,