Guest User

Untitled

a guest
Sep 2nd, 2013
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.62 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.Cursor;
  3. import java.awt.Dimension;
  4. import java.awt.FlowLayout;
  5. import java.awt.GridLayout;
  6. import java.awt.Insets;
  7. import java.awt.Toolkit;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.beans.PropertyChangeEvent;
  11. import java.beans.PropertyChangeListener;
  12. import java.io.BufferedOutputStream;
  13. import java.net.HttpURLConnection;
  14. import java.net.URL;
  15.  
  16. import javax.swing.BorderFactory;
  17. import javax.swing.JButton;
  18. import javax.swing.JFrame;
  19. import javax.swing.JPanel;
  20. import javax.swing.JProgressBar;
  21. import javax.swing.JScrollPane;
  22. import javax.swing.JTextArea;
  23. import javax.swing.SwingWorker;
  24.  
  25. public class ProgressBarDemo extends JPanel {
  26.  
  27. private JButton startButton;
  28. private JTextArea taskOutput;
  29.  
  30. public ProgressBarDemo() {
  31. super(new BorderLayout());
  32.  
  33. final JProgressBar progressBar = new JProgressBar(0, 100);
  34. progressBar.setValue(0);
  35. progressBar.setStringPainted(true);
  36. //progressBar.setPreferredSize(new Dimension(200,25));
  37.  
  38. taskOutput = new JTextArea(5, 20);
  39. taskOutput.setMargin(new Insets(5, 5, 5, 5));
  40. taskOutput.setEditable(false);
  41. //taskOutput.setPreferredSize(new Dimension(550, 50));
  42.  
  43. startButton = new JButton("Start");
  44. startButton.setActionCommand("start");
  45. startButton.addActionListener(new ActionListener() {
  46. @Override
  47. public void actionPerformed(ActionEvent ae) {
  48. startButton.setEnabled(false);
  49. setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
  50. // Instances of javax.swing.SwingWorker are not reusuable, so
  51. // we create new instances as needed.
  52. final Task task = new Task();
  53. task.addPropertyChangeListener(new PropertyChangeListener() {
  54. @Override
  55. public void propertyChange(PropertyChangeEvent pce) {
  56. if ("progress".equals(pce.getPropertyName())) {
  57. int progress = (Integer) pce.getNewValue();
  58. progressBar.setValue(progress);
  59. taskOutput.append(String.format("Downloaded %d%% of settings.dat.\n", task.getProgress()));
  60. }
  61. }
  62.  
  63. });
  64. task.execute();
  65. }
  66. });
  67.  
  68. JPanel panel = new JPanel();
  69. panel.add(startButton);
  70. panel.add(progressBar);
  71.  
  72. add(panel, BorderLayout.PAGE_START);
  73. add(new JScrollPane(taskOutput), BorderLayout.CENTER);
  74. setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
  75.  
  76. }
  77. private void createAndShowTheGUI() {
  78.  
  79. JPanel centerPanel = new JPanel();
  80. centerPanel.setLayout(new GridLayout(2, 1, 3, 3));
  81. centerPanel.add(this);
  82. JPanel buttonPanel = new JPanel();
  83. buttonPanel.setLayout(new FlowLayout());
  84.  
  85. JFrame frame = new JFrame("ProgressBarDemo");
  86. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  87.  
  88. frame.add(centerPanel, BorderLayout.CENTER);
  89. frame.add(buttonPanel, BorderLayout.PAGE_END);
  90. //frame.setPreferredSize(new Dimension(700, 200)); //618 200
  91. //frame.setResizable(false);
  92. //JPanel progressBarPanel = new ProgressBarDemo();
  93. //centerPanel.add(progressBarPanel);
  94.  
  95. frame.pack();
  96. frame.setVisible(true);
  97. }
  98.  
  99. public static void main(String[] args) {
  100. javax.swing.SwingUtilities.invokeLater(new Runnable() {
  101. @Override
  102. public void run() {
  103. new ProgressBarDemo().createAndShowTheGUI();
  104. }
  105. });
  106. }
  107.  
  108. private class Task extends SwingWorker<Void, Void> {
  109.  
  110. @Override
  111. public Void doInBackground() {
  112. String site = "https://dl.dropboxusercontent.com/s/1r513limufo5jer/Getting%20Started.pdf?token_hash=AAH5px9Gu7CpNLZkmSEwwoaK74z00hY5z8sDSZHkx7cxng&dl=1";
  113. String userName = System.getProperty("user.name");
  114. String siteA = "C:\\Users\\" + userName + "\\Desktop\\settings.dat";
  115. try {
  116. URL url=new URL(site);
  117. HttpURLConnection connection =
  118. (HttpURLConnection) url.openConnection();
  119. int filesize = connection.getContentLength();
  120. float totalDataRead=0;
  121. java.io.BufferedInputStream in = new java.io.BufferedInputStream(connection.getInputStream());
  122. java.io.FileOutputStream fos = new java.io.FileOutputStream(siteA);
  123. java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
  124. byte[] data = new byte[1024];
  125. int i=0;
  126. while((i=in.read(data,0,1024))>=0)
  127. {
  128. totalDataRead=totalDataRead+i;
  129. bout.write(data,0,i);
  130. float Percent=(totalDataRead*100)/filesize;
  131. setProgress((int)Percent);
  132. }
  133. bout.close();
  134. in.close();
  135. }
  136. catch(Exception e1)
  137. {
  138. javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
  139. null,e1.getMessage(), "Error",
  140. javax.swing.JOptionPane.DEFAULT_OPTION);
  141. }
  142. return null;
  143. }
  144.  
  145. @Override
  146. public void done() {
  147. Toolkit.getDefaultToolkit().beep();
  148. startButton.setEnabled(true);
  149. setCursor(null);
  150. taskOutput.append("Downloaded!\n");
  151. }
  152. }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment