Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.cjburkey.mods.bayc;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.io.File;
- import java.io.InputStream;
- import java.net.URL;
- import java.net.URLConnection;
- import javax.swing.JFrame;
- import javax.swing.JProgressBar;
- import javax.swing.ProgressMonitorInputStream;
- import org.apache.commons.io.FileUtils;
- public class Net {
- public static final void download(final String url, final File dest) {
- try {
- final JFrame frame = new JFrame();
- final JProgressBar bar = new JProgressBar(0, 100);
- bar.setStringPainted(true);
- bar.setString("Loading...");
- bar.setPreferredSize(new Dimension(512, (int) bar.getPreferredSize().getHeight()));
- frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
- frame.setLayout(new FlowLayout());
- frame.add(bar);
- frame.pack();
- frame.setResizable(false);
- frame.setLocationRelativeTo(null);
- frame.setVisible(true);
- new Thread(new Runnable() {
- public void run() {
- URLConnection con = null;
- try {
- con = new URL(url).openConnection();
- } catch (Exception e) {
- Core.error(e);
- }
- long total = con.getContentLength(), prog = 0;
- float percent = 0;
- while(percent < 99) {
- prog = dest.length();
- percent = ((float) prog / (float) total) * 100;
- bar.setValue((int) percent);
- bar.setString(String.format("%.2f", percent) + "%");
- frame.setTitle(dest.getName().replaceAll(".jar", ""));
- frame.requestFocus();
- frame.setLocationRelativeTo(null);
- try {
- Thread.sleep(250);
- } catch (Exception e) {
- Core.error(e);
- }
- }
- }
- }).start();
- Core.downloaded = true;
- InputStream stream = new URL(url).openStream();
- ProgressMonitorInputStream pmis = new ProgressMonitorInputStream(null, "Downloading...", stream);
- FileUtils.copyInputStreamToFile(pmis, dest);
- frame.dispose();
- } catch(Exception e) {
- Core.error(e);
- }
- }
- }
Add Comment
Please, Sign In to add comment