[JProgressBar] création look&Feel xml pour une JProgressBar
Bonsoir,
Je suis actuellement entrain de créer des statistiques dont le format de sorti est le PDF. Donc je souhaite passer la création dans un thread.
Cela fonctionne niquel.
Alors la seconde étape est de montrer à l'utilisateur l'état d'avancement de la création de rapport. Alors j'ai créer une class MaProgressBar.
Code:
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
| package outils;
import javax.swing.JProgressBar;
import javax.swing.JSlider;
import javax.swing.SwingWorker;
public class MaProgressBar extends JProgressBar{
private Move move = null;
private JSlider sb = null ;
public MaProgressBar(){
super(0,100);
sb = new JSlider(JSlider.HORIZONTAL, 0, 100, 60);
sb.setValue(0);
sb.setPaintTicks(true);
sb.setMajorTickSpacing(20);
sb.setMinorTickSpacing(5);
this.setModel(sb.getModel());
this.setValue(0);
}
public void setVisible(boolean b) {
if (b) {
if (move == null) {
move = new Move();
move.start();
}
} else {
if (move != null) {
move.end();
move = null;
}
}
super.setVisible(b);
}
public JProgressBar getProgress(){
return this;
}
private class Move extends Thread {
private boolean end = false;
public void run() {
try {
while (!end) {
sleep(10);
if (getProgress().getValue() < getProgress().getMaximum())
getProgress().setValue(getProgress().getValue() + 1);
else {
getProgress().setValue(0);
}
repaint();
}
} catch (InterruptedException e) {
end();
}
}
public void end() {
this.end = true;
}
}
} |
Ensuite lors du clique sur un bouton je lance la création de rapport et j'initialise
Code:
MaProgressBar.setVisible(true);
Puis à la fin de la création du rapport j'initialise
Code:
MaProgressBar.setVisible(false);
Voici le thread lancé lors du clique
Code:
1 2 3 4 5 6 7 8 9 10 11
| btnLancerStat.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent aevt){
new Thread() {
public void run() {
MaProgressBar.setVisible(true);
fonctionCreationRapport();
MaProgressBar.setVisible(false);
}
}.start();
}); |
Et cela ne m'affiche pas la MaProgressBar :evilred:
Si quelqu'un à une idée elle est la bienvenue :P
Merci d'avance,
Cordialement,
[JProgressBar] création look&Feel xml pour une JProgressBar
J'ai fais des recherches et je ne vois pas quoi mettre dans mon fichier XML afin d'afficher ma JProgressBar.
Donc que dois-je mettre dans mon fichier xml pour afficher ma JProgressBar ??
pour l'instant j'ai ca :
Code:
1 2 3 4 5 6
| <style id="progressbar">
// QUE DOIS-JE METTRE ICI ????
</style>
<bind style="progressbar" type="name" key="MaProgressBar"/> |
Merci d'avance,
Cordialement
1 pièce(s) jointe(s)
Problème LookAndFeel Xml pour JProgressBar !!!
Donc la j'ai un autre problème, je souhaiterai donc donner mon style perso à ma JProgressBar. Pour cela j'utilise un look and feel et je charge un fichier XML qui est en pièce jointe.
Pour la JProgressBar j'ai rajouter ce qui est en bas de page. C'est à dire ceci :
Code:
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
| <style id="vegasProgressBar">
<font id="fontP" name="Tahoma" size="20"/>
<object class="javax.swing.plaf.ColorUIResource" id="selectBack">
<int>0</int>
<int>0</int>
<int>255</int>
</object>
<object class="javax.swing.plaf.ColorUIResource" id="selectFore">
<int>0</int>
<int>255</int>
<int>0</int>
</object>
<object class="javax.swing.plaf.ColorUIResource" id="shadow">
<int>0</int>
<int>255</int>
<int>0</int>
</object>
<imagePainter method="progressbarBackground" path="images/progressbar.png" sourceInsets="0 0 0 0" paintCenter="true" stretch="true"/>
<defaultsProperty key="ProgressBar.horizontalSize" type="dimension" value="5 5" />
<defaultsProperty key="ProgressBar.repaintInterval" type="integer" value="5" />
<defaultsProperty key="ProgressBar.selectionBackground" type="idref" value="selectBack" />
<defaultsProperty key="ProgressBar.selectionForeground" type="idref" value="selectFore" />
<defaultsProperty key="ProgressBar.shadow" type="idref" value="shadow" />
<defaultsProperty key="ProgressBar.verticalSize" type="dimension" value="5 5" />
<defaultsProperty key="ProgressBar.cellLength" type="integer" value="9" />
<defaultsProperty key="ProgressBar.cellSpacing" type="integer" value="1" />
<defaultsProperty key="ProgressBar.font" type="idref" value="fontP" />
</style>
<bind style="vegasProgressBar" type="name" key="VegasProgressBar"/> |
Et le problème c'est qu'il y a que le painterImage qui fonctionne, c'est à dire que l'image que je met s'affiche bien en fond de ma JProgressBar. Par contre la font et les couleurs ne fonctionne pas, je ne comprend pas pourquoi :(. Par ce que le painterImage fonctionne.
Sinon que dois-je ajouter pour que la bar de progression s'affiche ??
j'ai vu ce lien : http://www.java2s.com/Tutorial/Java/...ookandFeel.htm
et j'ai tout testé mais cela ne fonctionne pas je ne vois pas quoi rajouter pour afficher la bar de progression.
Merci d'avance,
Cordialement