package com.test.demo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class ClientFr extends JFrame { public static void main(String[] args) { new ClientFr(); } private Socket sk = null; public ClientFr() { this.setTitle("客户端"); this.setSize(300, 400); this.setDefaultCloseOperation(3); this.setLocationRelativeTo(null); // 添加容器 JPanel jpa = new JPanel(); JTextArea jta = new JTextArea(10, 20); JTextField jtfa = new JTextField(14); JButton jbb = new JButton("发送"); JButton jba = new JButton("连接服务器"); jba.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { sk = new Socket(InetAddress.getByName("127.0.0.1"), 9090); new ClientThread(sk, jta).start(); } catch (UnknownHostException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); jbb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { OutputStream os = sk.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); bw.write(jtfa.getText()); bw.newLine(); bw.flush(); } catch (Exception e1) { e1.printStackTrace(); } } }); jpa.add(jba); jpa.add(jta); jpa.add(jtfa); jpa.add(jbb); this.setContentPane(jpa); this.setVisible(true); } }
时间: 2024-04-01 07:37:49 浏览: 107
这是一个简单的基于Java Socket编程的客户端程序,其中包含了连接服务器、发送消息等功能。程序中创建了一个JFrame窗口,包含了一个JTextArea用于显示聊天记录,一个JTextField用于输入发送的消息,以及一个连接服务器和一个发送消息的按钮。当点击连接服务器按钮时,程序会通过Socket连接到指定的服务器IP地址和端口号,并启动一个新的线程用于接收服务器发送的消息并显示在JTextArea中。当点击发送消息按钮时,程序会将JTextField中的消息通过Socket发送给服务器端。
需要注意的是,该程序仅作为基础示例,还需要根据具体需求进行扩展和优化,比如添加异常处理、输入验证、界面美化等功能。同时,Socket编程涉及到网络通信,需要保证网络连接的稳定性和安全性,避免出现数据丢失、消息混乱等问题。
相关问题
import java.awt.event.actionevent
import java.awt.event.ActionEvent是Java中的一个包,其中包含了处理用户界面事件的类和接口。其中,ActionEvent是一个事件类,用于处理用户界面中的动作事件。当用户在界面上执行某个动作时,例如点击按钮或菜单项,就会触发ActionEvent事件。程序员可以通过实现ActionListener接口来处理ActionEvent事件,从而实现对用户界面的响应和交互。
import java.awt.event.ActionEvent;
这是一个Java语句,用于导入 `java.awt.event` 包中的 `ActionEvent` 类。`ActionEvent` 类表示用户执行了一个动作(比如点击按钮、选择菜单项等)时所触发的事件。它包含了事件源(即发生事件的组件)、事件类型(比如按钮被点击)、事件相关的命令字符串、事件发生的时间戳等信息。在Java的图形用户界面(GUI)编程中,我们可以使用 `ActionListener` 接口监听 `ActionEvent` 事件,然后在事件发生时执行相应的操作,比如更新界面、执行计算等。
阅读全文