1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| public class ShowPercent extends JFrame
{
private JProgressBar progressBar;
public int percent = 0;
class MonSwingWorker extends SwingWorker<Integer, String>
{
public MonSwingWorker()
{
/* On ajoute un écouteur de barre de progression. */
addPropertyChangeListener(new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent evt)
{
if ("progress".equals(evt.getPropertyName()))
{
progressBar.setValue((Integer) evt.getNewValue());
}
}
});
}
@Override
public Integer doInBackground()
{
while (percent != 100)
{
setProgress(percent);
System.out.println(percent);
try
{
// Pour etre certain qu'il passe par là, je mets 5 secondes d'attente
Thread.sleep(5000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return 0;
}
@Override
protected void done()
{
/* Le traitement est terminé. */
System.out.println("done");
setProgress(100);
setVisible(false);
}
}
public ShowPercent()
{
/* Construction de l'interface graphique. */
super("ShowPercent");
setDefaultCloseOperation(EXIT_ON_CLOSE);
progressBar = new JProgressBar();
JPanel content = new JPanel(new BorderLayout());
JPanel south = new JPanel(new BorderLayout());
south.add(progressBar);
content.add(south, BorderLayout.SOUTH);
setContentPane(content);
pack();
setLocation(100, 100);
setVisible(true);
}
public int getPercent()
{
return percent;
}
public void setPercent(int percent)
{
this.percent = percent;
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
/* Démarrage de l'interface graphique et du SwingWorker. */
ShowPercent showPercent = new ShowPercent();
MonSwingWorker swingWorker = showPercent.new MonSwingWorker();
swingWorker.execute();
}
});
}
} |
Partager