JProgressBar-Verhalten

Status
Nicht offen für weitere Antworten.

ReatKay

Mitglied
Hallo werte JAVA-Community

Stehe gerade vor einem Problem. Ich schreib gerade 'n kleines Spiel, in welchem unter anderem der Spielerzustand als JProgressBar dargestellt wird (Lebenspunkte etc.).

Ausgangslage:

Spieler ruht sich aus... in diesem Zustand regenieren sich seine Ausdauerpunkte um 2 pro Sekunden. (bei 100 Punkten zu regenerieren also 200 Sekunden). Da ich gestern keinen Internetzugang hatte und ausem FF keine "Pause"-Funktion wusste, hab ich mir kurzerhand selbst eine geschrieben.

Der Programmablauf

- Spieler klickt "Ausrufen"
- Spielfigur wird blockiert
Schleife (solange Ausdauerpunkte != voll)
{
pause();
ausdauer++
bar neu zeichnen;
}

Das Problem nun: Die Bar wird erst am Ende der "Ausruhe"-Zeit neu gezeichnet, statt kontinuierlich bei jedem Schleifendurchgang - und das obwohl ich nach jedem ändern des Bar-Values validate() und repaint() aufrufe...


Pause-Klasse:


Code:
public abstract class pause
{
    private static long pauseTime;
    private static long pauseStart;
    private static long pauseEnd;

    public static void pause(int miliseconds)
    {
        pause.pauseTime = miliseconds;
        pause.pauseStart = System.currentTimeMillis();
        pause.pauseEnd = pause.pauseStart + pause.pauseTime;

        while (System.currentTimeMillis() < pause.pauseEnd)
        {
            // einfach mal Pause machen...
        }


    }

}

die "Ausruhen"-Schleife:
Code:
for (int i = player.getInstance().getEndurance() ; i < 100 ; i++)
{
      player.getInstance().incrementEndurance(); // addiert +1 zu endurance
      updateBars();                                            // setzt progressbar-value
      refresh();                                                  // validate() & repaint()
      pause.pause(500);                                     // pause-funktion gemäss oberem listing
}

Bin für Tips (bzw. Winks mit den Zaunpfählen) dankbar ;)
 

ReatKay

Mitglied
Mhn Swing mit Threads? Oo

Dachte das könnte problematisch werden, da Swing nicht auf den Peer-Components aufbaut und somit nicht wie AWT Thread-Safe ist? Oder habe ich dabei etwas falsch verstanden?
 

Marco13

Top Contributor
Stimmt, Swing ist nicht Thread-Safe. Das ist aber doch kein Problem. Wenn man einen Button klickt, und dann sowas macht wie
Code:
void actionPerformed(...)
{
    for (i=1 bis 100)
    {  
        setProgress(i);
        zeichneNeu();
        warte();
    }
}
dann wird das vom Event-Dispatch-Tread ausgeführt - und der ist auch für's neuzeichnen verantwortlich, d.h. er kommt erst dazu, neu zu zeichnen, wenn das ganze fertig ist. Die Alternative wäre eben ein eigener Thread
Code:
void actionPerformed(...)
{
    Thread t = new Thread(new Runnable()
    {
        public void run()
        {
            for (i=1 bis 100)
            {  
                SwingUtlities.invokeLater(new Runnable() // DAS muss wieder im Event-Dispatch-Thread gemacht werden!
                {
                    public void run()
                    {
                        setProgress(i);
                    }
                });
                warte();
            }
        }
    });
    t.start();
}

Aber genau überlegen, wie das ablaufen soll (wenn jemand 10 mal den Button klickt, werden so 10 Thread gestartet - also den Button rechtzeitig disablen oder so, um das zu verhindern)

Schau dazu auch mal hier: http://www.javalobby.org/eps/galbraith-swing-2/

(Hm, wem hab ich da jetzt gerade wieder seinen Lieblingslink (vor)weggenommen? :wink: )
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Rekursive Methode JProgressBar AWT, Swing, JavaFX & SWT 4
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
A Swing JProgressbar im Windows Look & Feel Farbanpassung AWT, Swing, JavaFX & SWT 2
G JProgressBar: Verständnis Problem AWT, Swing, JavaFX & SWT 3
S Swing JProgressBar läuft nicht mit AWT, Swing, JavaFX & SWT 12
T Swing JProgressBar mit String unschön AWT, Swing, JavaFX & SWT 5
H jprogressbar während datenabfrage anzeigen AWT, Swing, JavaFX & SWT 5
P Problem Thread.sleep() und JProgressBar AWT, Swing, JavaFX & SWT 7
E Swing JProgressBar updaten AWT, Swing, JavaFX & SWT 3
D Swing JProgressBar soll ende erkennen AWT, Swing, JavaFX & SWT 4
V Swing JProgressBar aktualisieren AWT, Swing, JavaFX & SWT 14
M JProgressBar updatet nicht AWT, Swing, JavaFX & SWT 4
T Swing JProgressBar Indeterminate bleibt stehen bei neuem Fenster AWT, Swing, JavaFX & SWT 6
A JProgressBar updaten abhängig vom Output eines externen Skripts AWT, Swing, JavaFX & SWT 2
M JProgressBar für einen Thread AWT, Swing, JavaFX & SWT 14
J JProgressBar Indeterminate AWT, Swing, JavaFX & SWT 17
J JProgressBar Farbverlauf AWT, Swing, JavaFX & SWT 2
O Probleme mit JProgressBar bei der Statusanzeige AWT, Swing, JavaFX & SWT 5
S jProgressbar von einem Download AWT, Swing, JavaFX & SWT 6
C Swing JProgressBar in JDialog wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
S Swing StatusLeiste mit JProgressBar AWT, Swing, JavaFX & SWT 4
S JProgressBar in Abhängigkeit eines FileInputStreams AWT, Swing, JavaFX & SWT 2
S (Applets) JProgressBar wird erst am Ende angezeigt AWT, Swing, JavaFX & SWT 13
S Problem mit JProgressBar AWT, Swing, JavaFX & SWT 3
E Swing DB Zugriff mit JProgressBar?! AWT, Swing, JavaFX & SWT 8
C Swing JProgressBar Aktualisiert sich nicht. AWT, Swing, JavaFX & SWT 9
M JProgressBar Look and Feel AWT, Swing, JavaFX & SWT 5
C JProgressBar und JLabel AWT, Swing, JavaFX & SWT 5
K JProgressBar transparent AWT, Swing, JavaFX & SWT 10
M JProgressBar AWT, Swing, JavaFX & SWT 2
K JProgressBar für Serialisierung AWT, Swing, JavaFX & SWT 6
multiholle [JProgressBar] Raster deaktivieren AWT, Swing, JavaFX & SWT 14
M JProgressBar übereinander legen? AWT, Swing, JavaFX & SWT 3
B JProgressbar wird nicht aktualisert, trotz Threads AWT, Swing, JavaFX & SWT 6
G JProgressBar actionPerformedMethode und SwingUI thread AWT, Swing, JavaFX & SWT 36
S JProgressBar und Threads AWT, Swing, JavaFX & SWT 11
G Repaint bei JProgressBar AWT, Swing, JavaFX & SWT 3
A Richtiger Umgang mit jProgressBar AWT, Swing, JavaFX & SWT 2
H JProgressBar in TableColumn von JTable setzen/abfragen AWT, Swing, JavaFX & SWT 5
B JProgressBar: wie muss ich das lösen? AWT, Swing, JavaFX & SWT 4
G JProgressbar AWT, Swing, JavaFX & SWT 8
A JProgressBar: Farbe im Windows Look&Feel ändern. AWT, Swing, JavaFX & SWT 1
C JProgressBar und ihre Tücken AWT, Swing, JavaFX & SWT 8
G JProgressBar in JTable AWT, Swing, JavaFX & SWT 6
G Probleme mit JProgressbar auf JPanel in JFrame AWT, Swing, JavaFX & SWT 6
F JProgressBar und NullPointerException AWT, Swing, JavaFX & SWT 4
T JProgressBar und CMP Bean AWT, Swing, JavaFX & SWT 2
J JProgressBar flackert AWT, Swing, JavaFX & SWT 14
S JProgressBar zu JOptionPane hinzufügen. AWT, Swing, JavaFX & SWT 8
M Swinganwendung Threads mit JProgressBar AWT, Swing, JavaFX & SWT 7
L JProgressbar möglichst genau AWT, Swing, JavaFX & SWT 3
G JProgressBar + Thread + Client AWT, Swing, JavaFX & SWT 10
R JProgressBar ohne Threads verwenden AWT, Swing, JavaFX & SWT 6
I JProgressBar String anzeigen, danach wieder normale Ansicht AWT, Swing, JavaFX & SWT 3
G JProgressBar AWT, Swing, JavaFX & SWT 8
L JProgressBar wird nicht mehr aktualisiert AWT, Swing, JavaFX & SWT 2
U JProgressBar in umgekehrter Richtung AWT, Swing, JavaFX & SWT 2
S JProgressBar einbinden AWT, Swing, JavaFX & SWT 5
H JProgressBar AWT, Swing, JavaFX & SWT 6
T JProgressBar und JPG AWT, Swing, JavaFX & SWT 2
D Problem mit JProgressBar und Threads AWT, Swing, JavaFX & SWT 7
Juelin Komisches Verhalten des JavaFXprogrammes AWT, Swing, JavaFX & SWT 4
Hatsi09 JavaFx Mediaplayer seltsames Verhalten AWT, Swing, JavaFX & SWT 0
T JavaFX JFrame verhalten wie JOptionPane (ErrorMessage) AWT, Swing, JavaFX & SWT 1
ralfb1105 Swing Frage zu SwingWorker Verhalten bei cancel() AWT, Swing, JavaFX & SWT 2
pkm kryptisches Verhalten bei GridLayout AWT, Swing, JavaFX & SWT 4
krgewb AWT JFrame soll sich wie Dialog verhalten AWT, Swing, JavaFX & SWT 9
D Merkwürdiges Verhalten vom JMenu AWT, Swing, JavaFX & SWT 4
T JavaFX Verhalten ImageView bei grossen BIlddateien AWT, Swing, JavaFX & SWT 0
HarleyDavidson Swing Seltsames Verhalten GridBagLayout AWT, Swing, JavaFX & SWT 11
P JFrame langsam / seltsames Verhalten AWT, Swing, JavaFX & SWT 6
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
S JTabbedProblem - "komisches" Verhalten AWT, Swing, JavaFX & SWT 2
P Swing Seltsames ActionListener-Verhalten AWT, Swing, JavaFX & SWT 7
T Wie ist das "Lookup-Verhalten" von JList, JCombobox änderbar? AWT, Swing, JavaFX & SWT 4
D Seltsames Verhalten meiner CheckBoxen AWT, Swing, JavaFX & SWT 7
N Swing Dynamisches Verhalten bei Änderung Fenstergröße AWT, Swing, JavaFX & SWT 6
E Swing Fehlerhaftes Verhalten bei gleichzeitigen Verwendnen von PopUpMenu und JDialog?! AWT, Swing, JavaFX & SWT 5
Ollek JTextField Verhalten mit LayoutManager AWT, Swing, JavaFX & SWT 8
E Swing Maskformatter Verhalten?! AWT, Swing, JavaFX & SWT 5
A JTreeTable - unerklärliches Verhalten von getValueAt AWT, Swing, JavaFX & SWT 2
F Merkwürdiges Verhalten zeichnen sperater Thread AWT, Swing, JavaFX & SWT 13
M Komisches Verhalten: JCombobox mit KeyListener AWT, Swing, JavaFX & SWT 13
hdi SWT Shell: Auslagerung von Code verändert Verhalten AWT, Swing, JavaFX & SWT 6
U Verhalten des CheckBoxCellEditors AWT, Swing, JavaFX & SWT 3
H2SO3- AWT seltsammes verhalten eines Panels AWT, Swing, JavaFX & SWT 9
pinerski Swing JList merkwürdiges Verhalten beim sortieren AWT, Swing, JavaFX & SWT 3
I Hyper-Link ähnliches Verhalten AWT, Swing, JavaFX & SWT 5
L JFrame-Verhalten bei Klick auf Schließen-Kreuz ändern AWT, Swing, JavaFX & SWT 3
dzim [SWT] Seltsames verhalten bei TableViewer mit TextCellEditor AWT, Swing, JavaFX & SWT 5
G Seltsames Verhalten JButton AWT, Swing, JavaFX & SWT 6
J JScrollBar scroll-Verhalten auf 2 JButtons umleiten? AWT, Swing, JavaFX & SWT 2
ARadauer bestimmtes verhalten für jtable AWT, Swing, JavaFX & SWT 6
M Merkwürdiges Verhalten von ListCellRender AWT, Swing, JavaFX & SWT 2
M Seltsames Verhalten Tooltip und JDialog AWT, Swing, JavaFX & SWT 8
S Wie verhalten sich transparente Grafiken? AWT, Swing, JavaFX & SWT 5
sparrow Tasten mit Umlauten im KeyListener verhalten sich seltsam AWT, Swing, JavaFX & SWT 4
S Seltsames verhalten des Befehles getContentPane().add(.) AWT, Swing, JavaFX & SWT 7
K JList - merkwürdiges Verhalten bei Leertaste (unter Focus) AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben