⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtfreceiveframe.java

📁 ftp的传输 比较简单的设计 适合初学者 自己看啊 tmt
💻 JAVA
字号:

import javax.swing.*;//jframe
import java.awt.*;//组件
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;//接收窗口事件的适配器
import java.awt.event.WindowEvent;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.IOException;
import java.io.DataInputStream;

/**
 * Created by IntelliJ IDEA.
 * User: cxwu
 * Date: 2007-9-30
 * Time: 9:15:47
 * To change this template use File | Settings | File Templates.
 */
public class RTFReceiveFrame {
    private JFileChooser jfc;
    private JFrame fr;
    private ServerSocket ss;
    private Socket socket;
    private JButton btnAccept;
    private JButton btnCancel;

    public RTFReceiveFrame() {
        //界面布局
        jfc = new JFileChooser();
        fr = new JFrame("接收文件");
        JLabel lblMsg = new JLabel("Wait...");
        btnAccept = new JButton("Accept");
        btnCancel = new JButton("Cancel");
        JPanel pnlBtn = new JPanel();
        pnlBtn.add(btnAccept);
        pnlBtn.add(btnCancel);
        Container c = fr.getContentPane();
        c.setLayout(new BorderLayout());
        c.add(BorderLayout.CENTER,lblMsg);
        c.add(BorderLayout.SOUTH,pnlBtn);
        fr.setSize(200,300);
        fr.setVisible(true);
        //注册事件
        AcceptHandler ah = new AcceptHandler();
        btnAccept.addActionListener(ah);
        btnCancel.addActionListener(ah);
        fr.addWindowListener(new WindowHandler());
        //不断监听,并接收发送的文件名
        try {
            ss = new ServerSocket(5800);
            while(!ss.isClosed()){
                socket = ss.accept();
                
                DataInputStream din = new DataInputStream(socket.getInputStream());
                String fileName = din.readUTF();
                lblMsg.setText(fileName);
            }
        } catch (IOException e) {
            if(ss.isClosed()){
                System.out.println("End");
            }else{
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        new RTFReceiveFrame();
    }

    class AcceptHandler implements ActionListener{
        public void actionPerformed(ActionEvent e){
            //如果同意接收同,则启动线程接收文件
            if(e.getSource()==btnAccept){
                jfc.showSaveDialog(fr);
                System.out.println(jfc.getName());
                RTFReceive receive = new RTFReceive(jfc.getSelectedFile(),socket);
                receive.start();
            }else if(btnCancel == e.getSource()){
                System.out.println("user do not accept!");
            }
        }
    }
    //关闭窗口的同时,回收资源
    class WindowHandler extends WindowAdapter {
        public void windowClosing(WindowEvent e) {
            System.out.println("Transfer file end!");
            try {
                ss.close();
                System.exit(0);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -