Java Swing实现:4输入框、下拉框与按钮,点击开始循环TCP发送选定内容!
好的,下面是一个简单的Java Swing GUI示例,包含4个输入框、一个下拉选择框、两个按钮(开始和结束),以及使用TCP发送选定输入框内容的逻辑。为了实现TCP发送和多个定时器,我们还需要一些额外的Java类库,比如`java.net`和`javax.swing.Timer`。 这个示例仅用于教学目的,并未包含完整的错误处理和资源管理逻辑。 1. 导入必要的类 ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.Socket; import java.net.UnknownHostException; import java.io.PrintWriter; import java.io.IOException; import javax.swing.Timer; ``` 2. 创建主类并设置GUI ```java public class SwingTCPExample { private JFrame frame; private JTextField textField1; private JTextField textField2; private JTextField textField3; private JTextField textField4; private JComboBox<String> comboBox; private JButton startButton; private JButton stopButton; private Timer timer1; private Timer timer2; private Timer timer3; private Timer timer4; private PrintWriter out; private Socket socket; private String selectedField; public SwingTCPExample() { // 初始化组件 frame = new JFrame("Swing TCP Example"); textField1 = new JTextField(20); textField2 = new JTextField(20); textField3 = new JTextField(20); textField4 = new JTextField(20); comboBox = new JComboBox<>(new String[]{"TextField1", "TextField2", "TextField3", "TextField4"}); startButton = new JButton("Start"); stopButton = new JButton("Stop"); // 设置布局 frame.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.insets = new Insets(5, 5, 5, 5); gbc.gridx = 0; gbc.gridy = 0; frame.add(new JLabel("Field 1:"), gbc); gbc.gridx = 1; frame.add(textField1, gbc); gbc.gridx = 0; gbc.gridy = 1; frame.add(new JLabel("Field 2:"), gbc); gbc.gridx = 1; frame.add(textField2, gbc); gbc.gridx = 0; gbc.gridy = 2; frame.add(new JLabel("Field 3:"), gbc); gbc.gridx = 1; frame.add(textField3, gbc); gbc.gridx = 0; gbc.gridy = 3; frame.add(new JLabel("Field 4:"), gbc); gbc.gridx = 1; frame.add(textField4, gbc); gbc.gridx = 0; gbc.gridy = 4; gbc.gridwidth = 2; frame.add(comboBox, gbc); gbc.gridx = 0; gbc.gridy = 5; gbc.gridwidth = 1; frame.add(startButton, gbc); gbc.gridx = 1; frame.add(stopButton, gbc); // 设置按钮事件 startButton.addActionListener(new StartButtonListener()); stopButton.addActionListener(new StopButtonListener()); // 设置下拉框事件 comboBox.addActionListener(e -> selectedField = (String) comboBox.getSelectedItem()); // 设置窗口属性 frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } // 开始按钮的事件监听器 private class StartButtonListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { String host = "localhost"; // TCP服务器地址 int port = 12345; // TCP服务器端口 try { socket = new Socket(host, port); out = new PrintWriter(socket.getOutputStream(), true); } catch (UnknownHostException | IOException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(frame, "Error connecting to server", "Error", JOptionPane.ERROR_MESSAGE); return; ######[AI写代码神器 | 1020点数解答 | 2024-10-30 09:14:18]
- 探秘 ClientMain 类:Java 客户端代码解析(字节豆包 | 41点数解答 | 2024-11-15 18:00:17)251
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)413
- 2025 暑假苍溪 - 广安 - 重庆红色研学:中小学生传承红色基因之旅 (字节豆包 | 1244点数解答 | 2025-06-19 16:32:34)240
- Java JFrame 实现多界面跳转:含登录、注册及个人信息管理功能(讯飞星火 | 503点数解答 | 2024-06-06 23:49:29)399
- 超详细!用复杂 HTML 代码打造功能丰富网站,含特色搜索与展示(字节豆包 | 572点数解答 | 2024-11-17 07:58:26)265
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)314
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1169
- C++实现输入正整数N输出N行N列大写字母矩阵,附代码详解(字节豆包 | 340点数解答 | 2026-01-02 19:26:59)42
- 易语言携手大漠插件:多窗口多线程单控脚本完整实现,含信息获取与模拟按键功能!(DeepSeek | 1541点数解答 | 2025-08-01 07:14:07)178
- 易语言+大漠插件:多窗口多线程单控脚本实现,含信息获取与模拟按键功能(字节豆包 | 949点数解答 | 2025-08-01 07:15:59)173
- 易语言结合大漠插件:多窗口多线程单控脚本开发全解析(阿里通义 | 1131点数解答 | 2025-08-01 07:16:58)167
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350