📄 rtfreceiveframe.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 + -