修改下列代码增加交互页面:import javaioDataOutputStream;import javaioFile;import javaioFileInputStream;import javanetSocket; 文件传输Client端br public class FileTransferClient extends Socket private static final S
这里提供一种简单的交互页面实现方式,使用Java Swing库实现:
- 在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 { // 省略部分代码... } }
- 创建一个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();
}
}
});
}
}
- 运行程序,即可看到交互页面。在输入框中输入文件路径,点击“传输文件”按钮即可开始文件传输。
注意:为了简化代码,这里并未对用户输入的路径进行合法性校验,实际使用时需要自行添加
原文地址: http://www.cveoy.top/t/topic/flVk 著作权归作者所有。请勿转载和采集!