酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

1:设置swing gui:4个输入框,一个下拉选择框(用于选择输入框),2个按钮(开始和结束) 2:点击开始时:建立一个tcp链接,将选中的输入框内容循环发送出去(tcpip与端口可以自己定义,4,个输入框使用4个定时器,独立开始结束)

以下是一个使用 Java 的 Swing 库来实现您所描述的功能的示例代码: ```java import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class SwingTcpSender { private JFrame frame; private JTextField inputField1, inputField2, inputField3, inputField4; private JComboBox<String> comboBox; private JButton startButton, endButton; private Socket socket; private OutputStream outputStream; public SwingTcpSender() { initUI(); } private void initUI() { frame = new JFrame("TCP Sender"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); inputField1 = new JTextField(20); inputField2 = new JTextField(20); inputField3 = new JTextField(20); inputField4 = new JTextField(20); String[] options = {"Input Field 1", "Input Field 2", "Input Field 3", "Input Field 4"}; comboBox = new JComboBox<>(options); startButton = new JButton("Start"); startButton.addActionListener(new StartButtonListener()); endButton = new JButton("End"); panel.add(inputField1); panel.add(inputField2); panel.add(inputField3); panel.add(inputField4); panel.add(comboBox); panel.add(startButton); panel.add(endButton); frame.add(panel, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } class StartButtonListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { String selectedOption = (String) comboBox.getSelectedItem(); try { socket = new Socket("127.0.0.1", 8080); // 替换为您的目标 IP 和端口 outputStream = socket.getOutputStream(); if (selectedOption.equals("Input Field 1")) { startSending(inputField1); } else if (selectedOption.equals("Input Field 2")) { startSending(inputField2); } else if (selectedOption.equals("Input Field 3")) { startSending(inputField3); } else if (selectedOption.equals("Input Field 4")) { startSending(inputField4); } } catch (IOException ex) { JOptionPane.showMessageDialog(frame, "Error establishing TCP connection: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } private void startSending(final JTextField field) { new Thread(new Runnable() { @Override public void run() { while (true) { String text = field.getText(); try { outputStream.write(text.getBytes()); outputStream.flush(); Thread.sleep(5000); // 5 秒间隔发送 } catch (IOException | InterruptedException ex) { JOptionPane.showMessageDialog(frame, "Error sending data: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); break; } } } }).start(); } } public static void main(String[] args) { new SwingTcpSender(); } } ``` 此示例代码中的 TCP 连接地址和端口是硬编码的(`127.0.0.1` 和 `8080`),您需要根据实际情况进行修改。这只是一个简单的示例,实际应用中可能需要更多的错误处理和资源管理。 [2024-10-30 09:10:35 | AI写代码神器 | 901点数解答]

相关提问