Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb en Swing avec la JProgress Bar

2 réponses
Avatar
triffaultc
Bonsoir,

je ne parviens pas =E0 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 =3D new JFrame("Cd Manager");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Create and set up the content pane.
JComponent newContentPane =3D new View();
newContentPane.setOpaque(true); // content panes must be opaque
frame.setContentPane(newContentPane);

Menu menubar =3D new Menu();
frame.setJMenuBar(menubar);

_JFileChooser =3D new JFileChooser();
_JFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

_JProgressBar =3D 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=E9thode principale de ma classe Business (cad le run de mon
Runnable), je fais ceci :
(on y acc=E8de 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=FBrement =EAtre tout b=EAte mais je ne vois pas...

Merci pour votre aide,

Bonne soir=E9e !

2 réponses

Avatar
TestMan
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/ProgressBarDemoProject/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

Avatar
groups nope
Bonsoir,

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,