jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist...

dior

Bekanntes Mitglied
Hallo,

ich habe ein kleines "grundsätzliches" Problem....

Ich habe ein Prog welches mir nach Buttonklick in meiner GUI eine SQL Abfrage startet und wenn fertig diese in einer jTable darstellt.
Zusätzlich habe ich einen jProgressBar welcher mir in der zwischenzeit bis die Abfrage fertig ist erfolgreich "hochläuft"

aber die Zeit die der ProgressBar hochläuft ist jetzt von mir eher auf die Holzhammermethode fix eingestellt und ganz und gar nicht dynamisch .... (habe noch mehrere Abfragen für die will ich das so nicht machen)

Ich würde gerne abhängig von der Abfrage die Werte so anpassen das der Progressbar immer bei 100% ist wenn die Abfrage fertig ist.

Hier mein Code für den Progressbar und den Start der Abfrage (die Abfrage selbst läuft in einer anderen Klasse ab...

der whileWert... ich habe mir durch System.out.println("Wert: " +value); angeschaut wann ca. die Abfrage fertig ist und den wert hergenommen
und durch probieren usw. dann das so eingestellt das es ca gleichzeitig fertig ist...... aber ist natürlich eigentlich "Käse"....

Java:
.
.
private void btnAPActionPerformed(java.awt.event.ActionEvent evt) {

class UpdateProgressBar1 extends Thread {

    int whileWert = 316755;
    int updateWert = whileWert/100;
    public void run() {
        jProgressBar1.setValue(0);
        int value = 0;
        
        int i = 0;
      while(i < whileWert){
      value = value + 1;
    jProgressBar1.setValue(value/updateWert);
    i++;
    System.out.println("Wert: "  +value);
//            try {
//                Thread.sleep(1);
//            } catch (InterruptedException ex) {
//                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
//            }
      }
    
          }}

      
      new UpdateProgressBar1().start();
        
        
        Thread queryThread = new Thread() {
      public void run() {

        
        exportHeader = Objekte.SQLs.apExportHeader;
        spaltenCount = Objekte.SQLs.apSpaltenCount;
        objektName = Objekte.SQLs.apobj;
        try {
                Stro.CursorToolkitOne.startWaitCursor(rootPane); // setzt die Sanduhr beim Cursor an
           
                AlleObjekte AP = new AlleObjekte(Objekte.SQLs.apSelect, Objekte.SQLs.apCountSelect, objektName);
      
           //     jProgressBar1 = new jProgressBar();
                Stro.CursorToolkitOne.stopWaitCursor(rootPane); // schaltet die Sanduhr beim Cursor aus und wieder den StandartMauszeiger
        } catch (Exception ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
         // Objekte.SQLs.AP();
        }
    };
    queryThread.start();
  
    }


Ich hoffe es ist halbwegs verständlich erklärt.... und ich hoffe es gibt eine lösung wie ich das quasi dynamisch so einstellen kann da egal welche Abfrage ich starte der progressBar immer bei 100% ist wenn die abfrage bzw. die jTable fertig ist
 

Michael...

Top Contributor
Da ja niemand wissen kann wie lange die Abfrage dauert wird es schwer.
Man könnte mit
Code:
setIndeterminate(true)
an der JProgressBar dem Anwender zumindest signalisieren, dass sich etwas tut. Wenn Du dann mal weißt wie viele Datensätze die Abfrage liefert, könnte man - wenn es sich überhaupt noch lohnt - den Modus wechseln.
Ansonsten kann man ja nur raten, den Wert langsam bis 99% laufen lassen und solange warten bis der Prozess tatsächlich abgearbeitet ist. ;-)
 

dior

Bekanntes Mitglied
Ich weiß zumindest bei jeder Abfrage wieviele Datenstäze in etwa zurückommen.....
Wie könnte ich das dann einbauen?
 
B

bone2

Gast
Du setzt sie auf 0, wenn die Abfrage fertig ist, setzt du sie auf 50, wenn der Table gefüllt ist, auf 100.
 

Michael...

Top Contributor
Ich weiß zumindest bei jeder Abfrage wieviele Datenstäze in etwa zurückommen.....
Wie könnte ich das dann einbauen?
Eine quick&dirty Demo:
Java:
import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;

public class JProgressDemo {
	public static void main(String[] s) {
		new JProgressDemo().startDemo();
	}
	
	public void startDemo() {
		JFrame frame = new JFrame(this.getClass().getSimpleName());
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(0, 0, 300, 150);
		frame.setLocationRelativeTo(null);
		label = new JLabel("Datenbankabfrage gestartet", JLabel.CENTER);
		progress = new JProgressBar();
		frame.add(label, BorderLayout.CENTER);
		frame.add(progress, BorderLayout.SOUTH);
		frame.setVisible(true);
		
		startDBProcess();
	}
	
	private void startDBProcess() {
		final int rowsCount = 666; //dummy
		progress.setMaximum(rowsCount);
		// Dummy Thread fuer Datenbankabfrage
		new Thread(new Runnable() {
			public void run() {
				progress.setIndeterminate(true);
				try { //Datenbankabfrage
					Thread.sleep(3000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				progress.setIndeterminate(false);
				label.setText("Lese Daten...");
				for (int i=0; i<rowsCount; i++) {
					try { //Auslesen des ResultSets
						Thread.sleep(50);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					progress.setValue(i+1);
				}
				label.setText("Fertig");
			}
		}).start();
	}
	
	private JLabel label;
	private JProgressBar progress;
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
S Thread.sleep mit JProgressBar Java Basics - Anfänger-Themen 1
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
E jProgressBar auf 0 stellen Java Basics - Anfänger-Themen 1
E JProgressbar Java Basics - Anfänger-Themen 8
M JProgressBar wird nicht richtig angezeigt Java Basics - Anfänger-Themen 8
S JProgressbar mit individuellem Start/Endpunkt Java Basics - Anfänger-Themen 11
V Zugriff auf jProgressbar Java Basics - Anfänger-Themen 10
S JProgressBar richtig anwenden Java Basics - Anfänger-Themen 27
N JProgressBar Java Basics - Anfänger-Themen 8
K Threads jProgressBar update Java Basics - Anfänger-Themen 14
J JProgressBar - wird nicht geupdated Java Basics - Anfänger-Themen 3
H JProgressBar wird nicht aktualisiert Java Basics - Anfänger-Themen 7
S jProgressBar läuft nicht! Java Basics - Anfänger-Themen 13
H Aktualisierung des JProgressBar in Abhängigkeit eines Threads Java Basics - Anfänger-Themen 5
Y jprogressbar beenden? Java Basics - Anfänger-Themen 4
L JProgressBar für FileUpload Java Basics - Anfänger-Themen 3
B Pseudo JProgressBar Java Basics - Anfänger-Themen 3
G JProgressBar - XP style Java Basics - Anfänger-Themen 4
G JProgressBar während dem ausführen einer Funktion Java Basics - Anfänger-Themen 3
S jProgressBar Java Basics - Anfänger-Themen 3
G JProgressBar Java Basics - Anfänger-Themen 2
G JProgressBar#2 Java Basics - Anfänger-Themen 2
G JProgressBar Java Basics - Anfänger-Themen 7
G jProgressBar value aus anderer Klasse heraus verändern Java Basics - Anfänger-Themen 7
B jProgressBar mit while nicht for Java Basics - Anfänger-Themen 13
K JProgressbar, zur laufzeit steuern Java Basics - Anfänger-Themen 7
V JProgressBar anklickbar? Java Basics - Anfänger-Themen 2
A Timer + JProgressBar Java Basics - Anfänger-Themen 4
G in JProgressBar Fortschritt anzeigen Java Basics - Anfänger-Themen 8
P JDialog & JProgressBar Java Basics - Anfänger-Themen 2
Z Problem mit JProgressBar Java Basics - Anfänger-Themen 4
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
DrahtEck Schleife soll wieder da anfangen wo ich es möchte ! Java Basics - Anfänger-Themen 17
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
Com.Roter Wie soll ich lernen? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
M Bei nach oben scrollen soll Seite aktualisiert werden (Userscript mit Javascript) Java Basics - Anfänger-Themen 10
R App soll selbstständig reagieren, anstatt via Models Java Basics - Anfänger-Themen 0
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
C Ein Algorithmus soll schneller werden Java Basics - Anfänger-Themen 24
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
J Kreis soll die gleiche Fläche wie das Rechteck haben wie mache ich das? Java Basics - Anfänger-Themen 3
MichelNeedhelp Brauche zu diesem Labyrinth ein Skript? Der Hamster soll im Urzeigersinn das ganze Labyrinth abgehen und wieder an seinem Ursprungsplatz sein. Java Basics - Anfänger-Themen 40
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
S Scanner soll Groß-/ Kleinschreibung ignorieren Java Basics - Anfänger-Themen 2
E Division von BigInteger soll Gelitkommazahl liefern Java Basics - Anfänger-Themen 46
M Unterklasse soll nicht alle Methoden erben Java Basics - Anfänger-Themen 3
E Methode soll andere Methode der selben Klasse aufrufen Java Basics - Anfänger-Themen 28
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
E Kreis soll eine Raupe darstellen Java Basics - Anfänger-Themen 37
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
H Koordinateneingabe im 2D Array soll true/false zurückgeben Java Basics - Anfänger-Themen 5
D Etwas unsicher wie es weitergehen soll Java Basics - Anfänger-Themen 2
N Bewegtes Objekt soll sich um eine Parallele bewegen Java Basics - Anfänger-Themen 0
B Button soll sowohl auf Klicken als auch auf die Enter-Taste reagieren Java Basics - Anfänger-Themen 9
B Derzeit JSF - Projekt, später soll MobileApp folgen Java Basics - Anfänger-Themen 5
scratchy1 Wie deklariert man eine Methode, die ein Objekt zurückgeben soll? Java Basics - Anfänger-Themen 22
V Vererbung Subklasse soll Superklasse verändern Java Basics - Anfänger-Themen 2
T Random soll Zufallszahl beibehalten. Java Basics - Anfänger-Themen 11
C Objekt soll ein Array sein. Java Basics - Anfänger-Themen 15
N Ich weiß nicht, wie ich meinen Code richtig designen soll und komme nicht weiter Java Basics - Anfänger-Themen 4
K Zufalsszahl soll sich nicht wiederholen Java Basics - Anfänger-Themen 9
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
J Kopierte Datei soll alte ersetzen. Java Basics - Anfänger-Themen 6
A Variablen Main Klasse soll auf eine andere Klasse zugreifen Java Basics - Anfänger-Themen 3
I Programm tut nicht was es soll :) Java Basics - Anfänger-Themen 5
Tommy135 Klassen jComboBox macht nicht was sie soll Java Basics - Anfänger-Themen 4
D JButton soll Farbe von JTextfield ändern Java Basics - Anfänger-Themen 5
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
kilopack15 Methode soll int-Array zurückgeben Java Basics - Anfänger-Themen 2
S Variable in JTextField soll immer um 5 zunehmen Java Basics - Anfänger-Themen 8
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
L Bei falscher Eingabe soll NaN zurückgegeben werden, Rückgabetyp jedoch double Java Basics - Anfänger-Themen 3
W drawLine(...) - Linie soll nur begrenzt lang sein Java Basics - Anfänger-Themen 9
I Fenster A soll Fenster B schliessen Java Basics - Anfänger-Themen 5
A Variablen Variable soll ihren Wert nach Initialisierung nicht mehr ändern Java Basics - Anfänger-Themen 2
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
X Einfache Frage; wie soll ich die spezielle float var speichern? Java Basics - Anfänger-Themen 2
C Ein Button soll Focus rausfinden und Methode starten Java Basics - Anfänger-Themen 9
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
K Variablenname soll der Inhalt vom String sein Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben