Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.Cursor;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.GridLayout;
- import java.awt.Insets;
- import java.awt.Toolkit;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.beans.PropertyChangeEvent;
- import java.beans.PropertyChangeListener;
- import java.io.BufferedOutputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import javax.swing.BorderFactory;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JProgressBar;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- import javax.swing.SwingWorker;
- public class ProgressBarDemo extends JPanel {
- private JButton startButton;
- private JTextArea taskOutput;
- public ProgressBarDemo() {
- super(new BorderLayout());
- final JProgressBar progressBar = new JProgressBar(0, 100);
- progressBar.setValue(0);
- progressBar.setStringPainted(true);
- //progressBar.setPreferredSize(new Dimension(200,25));
- taskOutput = new JTextArea(5, 20);
- taskOutput.setMargin(new Insets(5, 5, 5, 5));
- taskOutput.setEditable(false);
- //taskOutput.setPreferredSize(new Dimension(550, 50));
- startButton = new JButton("Start");
- startButton.setActionCommand("start");
- startButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent ae) {
- startButton.setEnabled(false);
- setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- // Instances of javax.swing.SwingWorker are not reusuable, so
- // we create new instances as needed.
- final Task task = new Task();
- task.addPropertyChangeListener(new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent pce) {
- if ("progress".equals(pce.getPropertyName())) {
- int progress = (Integer) pce.getNewValue();
- progressBar.setValue(progress);
- taskOutput.append(String.format("Downloaded %d%% of settings.dat.\n", task.getProgress()));
- }
- }
- });
- task.execute();
- }
- });
- JPanel panel = new JPanel();
- panel.add(startButton);
- panel.add(progressBar);
- add(panel, BorderLayout.PAGE_START);
- add(new JScrollPane(taskOutput), BorderLayout.CENTER);
- setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
- }
- private void createAndShowTheGUI() {
- JPanel centerPanel = new JPanel();
- centerPanel.setLayout(new GridLayout(2, 1, 3, 3));
- centerPanel.add(this);
- JPanel buttonPanel = new JPanel();
- buttonPanel.setLayout(new FlowLayout());
- JFrame frame = new JFrame("ProgressBarDemo");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.add(centerPanel, BorderLayout.CENTER);
- frame.add(buttonPanel, BorderLayout.PAGE_END);
- //frame.setPreferredSize(new Dimension(700, 200)); //618 200
- //frame.setResizable(false);
- //JPanel progressBarPanel = new ProgressBarDemo();
- //centerPanel.add(progressBarPanel);
- frame.pack();
- frame.setVisible(true);
- }
- public static void main(String[] args) {
- javax.swing.SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- new ProgressBarDemo().createAndShowTheGUI();
- }
- });
- }
- private class Task extends SwingWorker<Void, Void> {
- @Override
- public Void doInBackground() {
- String site = "https://dl.dropboxusercontent.com/s/1r513limufo5jer/Getting%20Started.pdf?token_hash=AAH5px9Gu7CpNLZkmSEwwoaK74z00hY5z8sDSZHkx7cxng&dl=1";
- String userName = System.getProperty("user.name");
- String siteA = "C:\\Users\\" + userName + "\\Desktop\\settings.dat";
- try {
- URL url=new URL(site);
- HttpURLConnection connection =
- (HttpURLConnection) url.openConnection();
- int filesize = connection.getContentLength();
- float totalDataRead=0;
- java.io.BufferedInputStream in = new java.io.BufferedInputStream(connection.getInputStream());
- java.io.FileOutputStream fos = new java.io.FileOutputStream(siteA);
- java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
- byte[] data = new byte[1024];
- int i=0;
- while((i=in.read(data,0,1024))>=0)
- {
- totalDataRead=totalDataRead+i;
- bout.write(data,0,i);
- float Percent=(totalDataRead*100)/filesize;
- setProgress((int)Percent);
- }
- bout.close();
- in.close();
- }
- catch(Exception e1)
- {
- javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
- null,e1.getMessage(), "Error",
- javax.swing.JOptionPane.DEFAULT_OPTION);
- }
- return null;
- }
- @Override
- public void done() {
- Toolkit.getDefaultToolkit().beep();
- startButton.setEnabled(true);
- setCursor(null);
- taskOutput.append("Downloaded!\n");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment