Java Swing聊天软件开发教程
Java Swing聊天软件开发教程
简介
本教程将指导你使用Java Swing创建一个简单的聊天应用程序。你将学习如何构建图形用户界面(GUI)、使用套接字进行网络通信以及处理用户交互。
代码示例javaimport javax.swing.;import java.awt.;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.io.PrintWriter;import java.net.Socket;import java.util.Scanner;
public class 简单聊天软件 { private JTextArea incoming; private JTextField outgoing; private PrintWriter writer; private Socket socket;
public static void main(String[] args) { new 简单聊天软件().go(); }
public void go() { JFrame frame = new JFrame('简单聊天软件'); JPanel panel = new JPanel(); incoming = new JTextArea(15, 50); incoming.setLineWrap(true); incoming.setWrapStyleWord(true); incoming.setEditable(false); JScrollPane scrollPane = new JScrollPane(incoming); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); outgoing = new JTextField(20); JButton sendButton = new JButton('发送'); sendButton.addActionListener(new SendButtonListener()); panel.add(scrollPane); panel.add(outgoing); panel.add(sendButton); setUpNetworking(); Thread readerThread = new Thread(new IncomingReader()); readerThread.start(); frame.getContentPane().add(BorderLayout.CENTER, panel); frame.setSize(600, 400); frame.setVisible(true); }
private void setUpNetworking() { try { socket = new Socket('localhost', 5000); writer = new PrintWriter(socket.getOutputStream()); System.out.println('网络连接已建立'); } catch (IOException e) { e.printStackTrace(); } }
public class SendButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { try { writer.println(outgoing.getText()); writer.flush(); } catch (Exception e) { e.printStackTrace(); } outgoing.setText(''); outgoing.requestFocus(); } }
public class IncomingReader implements Runnable { public void run() { try { Scanner reader = new Scanner(socket.getInputStream()); while (reader.hasNextLine()) { String message = reader.nextLine(); incoming.append(message + '
'); } } catch (IOException e) { e.printStackTrace(); } } }}
代码解析
- GUI设计: 使用
JFrame,JPanel,JTextArea,JTextField,JButton,JScrollPane等组件创建聊天窗口。- 网络通信: 使用Socket和PrintWriter建立与服务器的连接并发送消息。- 多线程: 使用Thread类创建新线程用于接收服务器消息,避免阻塞主线程。- 事件处理: 使用ActionListener处理发送按钮点击事件。
总结
本教程提供了一个简单的Java Swing聊天应用程序示例,你可以根据自己的需要进行扩展和修改,例如添加用户登录、好友列表等功能。
原文地址: https://www.cveoy.top/t/topic/fOxY 著作权归作者所有。请勿转载和采集!