pb en Swing avec la JProgress Bar
Le
triffaultc

Bonsoir,
je ne parviens pas à afficher la JProgress bar dans mon appli.
Voici l'architecture du programme :
Classe Catalogue
{
public JProgressBar _JProgressBar;
private static void createAndShowGUI()
{
// Create and set up the window.
JFrame frame = new JFrame("Cd Manager");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Create and set up the content pane.
JComponent newContentPane = new View();
newContentPane.setOpaque(true); // content panes must be opaque
frame.setContentPane(newContentPane);
Menu menubar = new Menu();
frame.setJMenuBar(menubar);
_JFileChooser = new JFileChooser();
_JFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
_JProgressBar = new JProgressBar(0, 100);
_JProgressBar.setValue(0);
// _JProgressBar.setIndeterminate(true);
_JProgressBar.setStringPainted(true);
// Display the window.
frame.pack();
frame.setVisible(true);
}
@SuppressWarnings("unchecked")
public static void main(String[] args) throws IOException
{
_logger.info("Application launched.");
if (init())
{
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run()
{
createAndShowGUI();
}
});
}
}
Class View extends JPanel -> rien de particulier
Class Business implements Runnable. -> RAS
dans la méthode principale de ma classe Business (cad le run de mon
Runnable), je fais ceci :
(on y accède via un menu avec des listeners et tout et tout, toute
cette partie fonctionne).
Catalogue._JProgressBar.setValue(__progress); pour rafraichir ma
ProgressBar.
dans mes logs, progress augmente bien mais la progressBar n'apparait
jamais !!
J'ai bien lu le tutorial de sun sur
http://java.sun.com/docs/books/tutorial/uiswing/examples/components/Progress=
BarDemoProject/src/components/ProgressBarDemo.java
et je ne comprends pas ce qui coince.
Machine Mac OSX, version de Java 1.5.0
Ca doit sûrement être tout bête mais je ne vois pas
Merci pour votre aide,
Bonne soirée !
je ne parviens pas à afficher la JProgress bar dans mon appli.
Voici l'architecture du programme :
Classe Catalogue
{
public JProgressBar _JProgressBar;
private static void createAndShowGUI()
{
// Create and set up the window.
JFrame frame = new JFrame("Cd Manager");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Create and set up the content pane.
JComponent newContentPane = new View();
newContentPane.setOpaque(true); // content panes must be opaque
frame.setContentPane(newContentPane);
Menu menubar = new Menu();
frame.setJMenuBar(menubar);
_JFileChooser = new JFileChooser();
_JFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
_JProgressBar = new JProgressBar(0, 100);
_JProgressBar.setValue(0);
// _JProgressBar.setIndeterminate(true);
_JProgressBar.setStringPainted(true);
// Display the window.
frame.pack();
frame.setVisible(true);
}
@SuppressWarnings("unchecked")
public static void main(String[] args) throws IOException
{
_logger.info("Application launched.");
if (init())
{
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run()
{
createAndShowGUI();
}
});
}
}
Class View extends JPanel -> rien de particulier
Class Business implements Runnable. -> RAS
dans la méthode principale de ma classe Business (cad le run de mon
Runnable), je fais ceci :
(on y accède via un menu avec des listeners et tout et tout, toute
cette partie fonctionne).
Catalogue._JProgressBar.setValue(__progress); pour rafraichir ma
ProgressBar.
dans mes logs, progress augmente bien mais la progressBar n'apparait
jamais !!
J'ai bien lu le tutorial de sun sur
http://java.sun.com/docs/books/tutorial/uiswing/examples/components/Progress=
BarDemoProject/src/components/ProgressBarDemo.java
et je ne comprends pas ce qui coince.
Machine Mac OSX, version de Java 1.5.0
Ca doit sûrement être tout bête mais je ne vois pas
Merci pour votre aide,
Bonne soirée !
Bonjour,
ça sent la "tarte à la crème" du bloquage du fil par l'instance en
écoute :o)
Il est toujours préférable d'effectuer un travail "long" (car
nécessitant une barre de progression) dans un SwingWorker qui lui ne
bloquera pas le fil de rafraichissement.
CF. http://java.sun.com/javase/6/docs/api/javax/swing/SwingWorker.html
Sauf que vous êtes sous du 1.5 et sous OSX, regardez ainsi sur
https://swingworker.dev.java.net/
"logiquement ça marche ..." ;)
A+
TM
j'avais oublié de dire que j'étais au courant pour le Swing worker
mais que je n'avais pas trouvé d'équivalent sur 1.5.
Merci pour le site cpdt, je vais télécharger le projet et l'intégrer
dans ma solution.
Bonne soirée,