1 35 36 39 package demo.swingset; 40 41 import swingwtx.swing.*; 42 import swingwtx.swing.event.*; 43 import swingwtx.swing.text.*; 44 import swingwtx.swing.border.*; 45 import swingwtx.swing.colorchooser.*; 46 import swingwtx.swing.filechooser.*; 47 import javax.accessibility.*; 48 49 import swingwt.awt.*; 50 import swingwt.awt.event.*; 51 import java.beans.*; 52 import java.util.*; 53 import java.io.*; 54 import java.applet.*; 55 import java.net.*; 56 57 64 public class ProgressBarDemo extends DemoModule { 65 66 69 public static void main(String [] args) { 70 ProgressBarDemo demo = new ProgressBarDemo(null); 71 demo.mainImpl(); 72 } 73 74 77 public ProgressBarDemo(SwingSet2 swingset) { 78 super(swingset, "ProgressBarDemo", "toolbar/JProgressBar.gif"); 81 82 createProgressPanel(); 83 } 84 85 swingwtx.swing.Timer timer; 86 Action loadAction; 87 Action stopAction; 88 JProgressBar progressBar; 89 JTextArea progressTextArea; 90 91 public void createProgressPanel() { 92 getDemoPanel().setLayout(new BorderLayout()); 93 94 JPanel textWrapper = new JPanel(new BorderLayout()); 95 textWrapper.setBorder(new SoftBevelBorder(BevelBorder.LOWERED)); 96 textWrapper.setAlignmentX(LEFT_ALIGNMENT); 97 progressTextArea = new MyTextArea(); 98 textWrapper.add(new JScrollPane(progressTextArea), BorderLayout.CENTER); 101 102 getDemoPanel().add(textWrapper, BorderLayout.CENTER); 103 104 JPanel progressPanel = new JPanel(); 105 getDemoPanel().add(progressPanel, BorderLayout.SOUTH); 106 107 progressBar = new JProgressBar(JProgressBar.HORIZONTAL, 0, text.length()) { 108 public Dimension getPreferredSize() { 109 return new Dimension(300, super.getPreferredSize().height); 110 } 111 }; 112 114 progressPanel.add(progressBar); 115 progressPanel.add(createLoadButton()); 116 progressPanel.add(createStopButton()); 117 } 118 119 public JButton createLoadButton() { 120 loadAction = new AbstractAction(getString("ProgressBarDemo.start_button")) { 121 public void actionPerformed(ActionEvent e) { 122 if(timer == null) { 123 loadAction.setEnabled(false); 124 stopAction.setEnabled(true); 125 timer = new swingwtx.swing.Timer(18, createTextLoadAction()); 126 timer.start(); 127 } 128 } 129 }; 130 return createButton(loadAction); 131 } 132 133 public JButton createStopButton() { 134 stopAction = new AbstractAction(getString("ProgressBarDemo.stop_button")) { 135 public void actionPerformed(ActionEvent e) { 136 if(timer != null) { 137 timer.stop(); 138 timer = null; 139 } 140 loadAction.setEnabled(true); 141 stopAction.setEnabled(false); 142 } 143 }; 144 return createButton(stopAction); 145 } 146 147 public JButton createButton(Action a) { 148 JButton b = new JButton(); 149 b.putClientProperty("displayActionText", Boolean.TRUE); 153 b.setAction(a); 154 return b; 155 } 156 157 158 int textLocation = 0; 159 160 String text = getString("ProgressBarDemo.text"); 161 162 public Action createTextLoadAction() { 163 return new AbstractAction("text load action") { 164 public void actionPerformed (ActionEvent e) { 165 if(progressBar.getValue() < progressBar.getMaximum()) { 166 progressBar.setValue(progressBar.getValue() + 1); 167 progressTextArea.append(text.substring(textLocation, textLocation+1)); 168 textLocation++; 169 } else { 170 if(timer != null) { 171 timer.stop(); 172 timer = null; 173 loadAction.setEnabled(true); 174 stopAction.setEnabled(false); 175 } 176 } 177 } 178 }; 179 } 180 181 182 class MyTextArea extends JTextArea { 183 public MyTextArea() { 184 super(null, 0, 0); 185 setEditable(false); 186 setText(""); 187 } 188 189 public float getAlignmentX () { 190 return LEFT_ALIGNMENT; 191 } 192 193 public float getAlignmentY () { 194 return TOP_ALIGNMENT; 195 } 196 } 197 } 198 199 200 | Popular Tags |