web-dev-qa-db-fra.com

Comment ajouter du texte sur jprogressbar?

J'utilise un jprogressbar pour indiquer l'état de disponibilité. Je souhaite afficher un texte de 40% [hypothèse] dans la barre de progression . comment faire? le texte a été modifié en fonction de la valeur de disponibilité

17
Siddhu

Vous pouvez utiliser:

Initialisation:

progressBar.setStringPainted(true);

Mise à jour:

progressBar.setValue(newValue);
40
Reimeus
3
mKorbel
  • Utilisez setStringPainted(true) pour afficher le Pourcentage des travaux terminés.

  • Utilisez setValue() qui vous aidera à définir le valeur incrémentielle et setString() pour afficher le message end message une fois terminé ...

Voici un exemple tiré de ma base de code:

final JProgressBar bar = new JProgressBar(0 , 100);  // 0 - min , 100 - max
bar.setStringPainted(true);
panel.add(bar);                   // panel is a JPanel's Obj reference variable

JButton butt = new JButton("start");
butt.addActionListener(){

    public void actionPerformed(){
        new Thread(new Runnable(){
            public void run(){
                int x = 0;
                while(x<=100) {
                    x++;
                    bar.setValue(x);        // Setting incremental values
                    if (x ==  100 ){
                        bar.setString("Its Done");   // End message
                        try{
                            Thread.sleep(200);
                        }catch(Exception ex){ }
                    }
                }).start();
            }
        });
3
Kumar Vivek Mitra

Cela montrera la progression à l'intérieur du bar

   progressBar.setStringPainted(true);
2
Alexander

Cela montre le pourcentage de progression dans la barre de progression 

progressBar.setStringPainted(true);
1
Avishka92

Je ne sais pas si votre [assumption] fait partie de la chaîne que vous voulez afficher. Si oui, la solution complète serait quelque chose comme:

private static final String PROGRESS_MASK = "%d%% [assumption]";

public void someMethod() {
  ...

  progressBar.addChangeListener(new ChangeListener() {
    @Override
    void stateChanged(ChangeEvent e) {
      progressBar.setString(String.format(PROGRESS_MASK,
        progressBar.getValue()));
    }
  }

  progressBar.setStringPainted(true);
}

... car vous seriez incapable de vous fier à la chaîne par défaut qui affiche simplement le pourcentage.

0
Duncan Jones

Deux choses que vous devriez remarquer ici. Ce sont,

1) Vous devez définir la variable paintString de JProgressBar à l'aide de la méthode setStringPainted. Tu peux faire ça comme

jprogressBar.setStringPainted (true)

vous devez le faire parce que 

isStringPainted ()

la méthode doit renvoyer la valeur true si la barre de progression doit afficher les valeurs ou le pourcentage de progression. 

2) Maintenant, pour personnaliser avec votre valeur personnalisée, définissez votre instance personnalisée sur jprogressBar en utilisant 

jprogressBar.setString (customString)

alors cela devrait bien fonctionner.

0
sakthisundar

Voici le lien du tutoriel qui montre comment définir la valeur (c'est-à-dire 10% ou 40% ...) en fonction du statut de la barre de progression http://docs.Oracle.com/javase/tutorial/uiswing/components /progress.html

0
happy