概述
packagecom.learn.talk;importjava.awt.BorderLayout;importjava.awt.Dimension;importjava.awt.Toolkit;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.Socket;importjava.net.UnknownHostException;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JSplitPane;importjavax.swing.JTextArea;public classChatSender {privatePrintWriter pw;privateJFrame frame;privateJPanel pane_buttom;privateJSplitPane pane_center;//显示内容的文本框,输入内容的文本框,发送内容按钮
privateJScrollPane pane_showWindow;privateJScrollPane pane_inputWindow;privateJTextArea area_showWindow;privateJTextArea area_inputWindow;privateJButton btn_send;private Dimension dimension;//用于设置area_showWindow可拖拉的大小//初始化
publicChatSender() {
frame= newJFrame();
pane_buttom= newJPanel();
pane_showWindow= newJScrollPane();
pane_inputWindow= newJScrollPane();
area_showWindow= newJTextArea();
area_inputWindow= newJTextArea();
pane_center= new JSplitPane(JSplitPane.VERTICAL_SPLIT, false,
pane_showWindow, pane_inputWindow);
btn_send= new JButton("send");
dimension= new Dimension(50, 300);
}//调用方法显示窗口
public voidshowFrame() {
initFrame();
initChatTextArea();
initButton();
btn_send();
socket();
}//主窗体
public voidinitFrame() {
frame.setTitle("garfield");int width = (int) Toolkit.getDefaultToolkit().getScreenSize()
.getWidth();int height = (int) Toolkit.getDefaultToolkit().getScreenSize()
.getHeight();
frame.setBounds(width/ 2, height / 2, 400, 450);
frame.setVisible(true);
}//内容显示文本框和输入内容文本框
private voidinitChatTextArea() {//取得视图焦点
pane_showWindow.getViewport().add(area_showWindow);
pane_inputWindow.getViewport().add(area_inputWindow);//将显示文本域设置为不可编辑
area_showWindow.setEditable(false);//设置显示文本域可拖拉的大小
pane_showWindow.setMinimumSize(dimension);
frame.add(pane_center, BorderLayout.CENTER);
}//发送文件,发送内容按钮
public voidinitButton() {
pane_buttom.add(btn_send);
frame.add(pane_buttom, BorderLayout.SOUTH);
}private voidbtn_send() {
btn_send.addActionListener(newActionListener() {
@Overridepublic voidactionPerformed(ActionEvent e) {
String info=area_inputWindow.getText();
area_showWindow.append("garfield: " + info + "rn");
pw.println(info);
area_inputWindow.setText("");
}
});
}private voidsocket() {try{
Socket s= new Socket("127.0.0.1", 9988);
InputStreamReader isr= newInputStreamReader(s.getInputStream());
BufferedReader br= newBufferedReader(isr);
pw= new PrintWriter(s.getOutputStream(), true);while (true) {
String info=br.readLine();
area_showWindow.append("简繁: " + info + "rn");
}
}catch(UnknownHostException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}public static voidmain(String[] args) {
ChatSender chat= newChatSender();
chat.showFrame();
}
}
最后
以上就是鲤鱼蜜粉为你收集整理的java 实现qq_java实现类似qq的窗口对聊的全部内容,希望文章能够帮你解决java 实现qq_java实现类似qq的窗口对聊所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复