这里提供一种简单的交互页面实现方式,使用Java Swing库实现:

  1. 在sendFile()方法中,将文件路径改为从交互页面中获取的路径:

public void sendFile(String filePath) throws Exception { try { File file = new File(filePath); if(file.exists()) { fis = new FileInputStream(file); dos = new DataOutputStream(client.getOutputStream()); // 省略部分代码... } } catch (Exception e) { e.printStackTrace(); } finally { // 省略部分代码... } }

  1. 创建一个JFrame类,添加一个JPanel,并在JPanel中添加一个JTextField和一个JButton,用于输入文件路径和触发文件传输。

import javax.swing.; import java.awt.; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File;

public class FileTransferClientUI extends JFrame {

private static final String SERVER_IP = "219.218.21.89"; // 服务端IP
private static final int SERVER_PORT = 8899; // 服务端端口

private JPanel jPanel;
private JTextField jTextField;
private JButton jButton;

public FileTransferClientUI() {
    setTitle("文件传输Client端");
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setBounds(100, 100, 400, 120);

    // 创建一个JPanel,并在其中添加一个JTextField和一个JButton
    jPanel = new JPanel();
    getContentPane().add(jPanel, BorderLayout.CENTER);

    jTextField = new JTextField();
    jTextField.setColumns(30);
    jPanel.add(jTextField);

    jButton = new JButton("传输文件");
    jPanel.add(jButton);
    jButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            String filePath = jTextField.getText();
            if (filePath != null && filePath.length() > 0) {
                try {
                    FileTransferClient client = new FileTransferClient();
                    client.sendFile(filePath);
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            } else {
                JOptionPane.showMessageDialog(null, "请输入文件路径");
            }
        }
    });
}

public static void main(String[] args) {
    // 显示交互页面
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                FileTransferClientUI frame = new FileTransferClientUI();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

}

  1. 运行程序,即可看到交互页面。在输入框中输入文件路径,点击“传输文件”按钮即可开始文件传输。

注意:为了简化代码,这里并未对用户输入的路径进行合法性校验,实际使用时需要自行添加


原文地址: http://www.cveoy.top/t/topic/flVk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录