多文件自平衡云传输框架(6)-- 接收的后续操作(进度条)

目录

模块6- 接收的后续操作

结果显示

图片

接收模块的进度条显示

IRecieveViewAction

ViewShowProgressBar


模块6- 接收的后续操作

结果显示

图片

接收模块的进度条显示

IRecieveViewAction

/**
 * 
 * <ol>
 * 功能;view层显示的接口
 * </ol>
 * @author Quan
 * @date 2020/03/07
 * @version 0.0.1
 */
public interface IRecieveViewAction {
	void linkedOnetoView(Socket sender);
	void hasNoSender();
	void receiveFail(String message);
    void change(long value, long maxValue);
    void receiveSuccess(String name);
}

ViewShowProgressBar

/**
 * 
 * <ol>
 * 功能:自己写的进度条实现类test,用来show界面
 * </ol>
 * @author Quan
 * @date 2020/03/07
 * @version 0.0.1
 */
public class ViewShowProgressBar implements IRecieveViewAction {
	private JFrame jfrmView;
	private JProgressBar jpgb;
	private volatile int barLen;
	
	public ViewShowProgressBar() {
		jfrmView = new JFrame("接收文件进度条");
		jfrmView.setSize(500, 300);
		jfrmView.setLayout(new BorderLayout());
		jfrmView.setLocationRelativeTo(null);
		jfrmView.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JLabel jlblTopic = new JLabel("接收文件进度条", 0);
		jlblTopic.setFont(new Font("微软雅黑", Font.BOLD, 28));
		jfrmView.add(jlblTopic, "North");
		
		JPanel jpnlProgressBar = new JPanel(new FlowLayout());
		jfrmView.add(jpnlProgressBar);
		
		jpgb = new JProgressBar();
		jpnlProgressBar.add(jpgb);
		jpgb.setStringPainted(true);
		jpgb.setMaximum(100);
	}
	
	public void showView() {
		jfrmView.setVisible(true);

        ResourceBaseInfo rbi = new ResourceBaseInfo();
        rbi.setId(1);
        rbi.setName("m");
        rbi.setAbsoluteRoot("F:\\MobileFile-\\");
        rbi.setVersion(1);
        
        rbi.exploreResource("F:\\MobileFile-\\");
        rbi.saveResource();
        
        ResourceRequestor requestor = new ResourceRequestor();
        requestor.setRecieveViewAction(this);
        requestor.requestResource(rbi, "F:\\test\\");
	}
	
	public void closeView() {
		jfrmView.dispose();
	}

	@Override
	public void change(long value, long maxValue) {
        synchronized (jfrmView) {
            barLen += value;
        }
        Long a = (long)barLen;
        Long b = (long)maxValue;
		int len = (int)((a.doubleValue()/b.doubleValue())*100);
		String strPer = "已完成[" + len + "]%";
		jpgb.setValue(len);
		jpgb.setString(strPer);
		

	}

    @Override
    public void linkedOnetoView(Socket sender) {
        System.out.println(sender.getInetAddress().getHostAddress() + "已连接");
    }

    @Override
    public void hasNoSender() {
        ViewTool.showMessage(jfrmView, "没有发送者,请稍后再试");
    }

    @Override
    public void receiveFail(String message) {
        ViewTool.showMessage(jfrmView, message);
    }

    @Override
    public void receiveSuccess(String name) {
        ViewTool.showMessage(jfrmView, name + "接收全部完成");
    }
}

可以看到的的确确传送成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值