it-swarm.com.de

Wie füge ich Text in jprogressbar hinzu?

Ich verwende eine Fortschrittsanzeige, um den Verfügbarkeitsstatus anzuzeigen. Ich möchte einen Text von 40% [Annahme] in der Fortschrittsleiste anzeigen . wie es geht? Der Text wurde entsprechend dem Verfügbarkeitswert geändert

17
Siddhu

Sie können verwenden:

Initialisierung:

progressBar.setStringPainted(true);

Aktualisierung:

progressBar.setValue(newValue);
40
Reimeus
3
mKorbel
  • Verwenden Sie setStringPainted(true), um den Prozentsatz der abgeschlossenen Arbeit anzuzeigen.

  • Verwenden Sie setValue(), um den inkrementellen Wert einzustellen und setString(), um die end-Meldung anzuzeigen , wenn Sie fertig sind ...

Hier ist ein Beispiel aus meiner Code-Basis:

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

Dadurch wird der Fortschritt in der Leiste angezeigt

   progressBar.setStringPainted(true);
2
Alexander

Dies zeigt den Prozentsatz des Fortschritts in der Fortschrittsleiste 

progressBar.setStringPainted(true);
1
Avishka92

Ich bin unklar, ob Ihr [assumption] Teil der Zeichenfolge ist, die angezeigt werden soll. Wenn ja, wäre die Komplettlösung etwa so:

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);
}

... da Sie sich nicht auf die Standardzeichenfolge verlassen können, die lediglich den Prozentsatz anzeigt.

0
Duncan Jones

Zwei Dinge, die Sie hier beachten sollten. Diese sind,

1) Sie müssen die paintString-Variable von JProgressBar mit der setStringPainted-Methode festlegen. Das kannst du gerne machen

jprogressBar.setStringPainted (true)

sie müssen das tun, weil, 

isStringPainted ()

die Methode sollte true zurückgeben, wenn der Fortschrittsbalken die Werte oder den Prozentsatz des Fortschritts darauf anzeigen muss. 

2) Legen Sie nun mit Ihrem benutzerdefinierten Wert die benutzerdefinierte jprogressBar-Instanz mit an 

jprogressBar.setString (customString)

dann sollte es gut funktionieren.

0
sakthisundar

Hier ist der Tutorial-Link, der zeigt, wie der Wert (dh 10% oder 40% ...) entsprechend dem Status der Fortschrittsleiste eingestellt wird http://docs.Oracle.com/javase/tutorial/uiswing/ components/progress.html

0
happy