(Applets) JProgressBar wird erst am Ende angezeigt

Sued_Faust

Bekanntes Mitglied
Moin,

wie der Titel schon sagt liegt mein Problem dadrin, dass ich eine JProgressBar in meinem Applet eingebaut habe aber sie erst gegen Ende angezeigt wird. Vorher sieht man nur ein ganz kleienn Teil eines Labels.

Hier mal relevanter Code:

Java:
public void runApplet(String siteID, String containerID,
			String UploadDirectory, String updatenoderf, String filename,
			String description, String majorversion, String overwrite,
			String thumbnails) {

                // Erstellt die Gui für die ProgressBar.
		buildGUI();

		// Legt alle Parameter aus dem JS-Aufruf in das Objekt ab.
		jsPara.setSiteID(siteID);
		jsPara.setContainerID(containerID);
		jsPara.setUploadDirectory(UploadDirectory);
		jsPara.setUpdatenoderef(updatenoderf);
		jsPara.setFilename(filename);
		jsPara.setDescription(description);
		jsPara.setMajorversion(majorversion);
		jsPara.setOverwrite(overwrite);
		jsPara.setThumbnails(thumbnails);

		boolean fileUpload = false;

		// Prüft ob ein File-Upload stattfindet.
		fileUpload = checkForFileUpload();

		fileIO = new FileIO(fileUpload, jsPara);

		// Lädt gesuchte Datei.
		boolean canceled = AccessController
				.doPrivileged(new PrivilegedAction() {
					public Object run() {
						return fileIO.loadFile();
					}
				});
		if (canceled == false) {
			int fileListLength = jsPara.getFiledata().length;
			for (fileIndex = 0; fileIndex < fileListLength; fileIndex++) {
				// Setzt das Label entsprechend.
				if (fileListLength > 1) {
					label.setText("Uploading(" + (fileIndex + 1) + "/"
							+ fileListLength + ")...");
				} else {
					label.setText("Uploading...");
				}

				// Leitet den Upload ein.
				runUpload(fileUpload, canceled);
			}

			// Setzt default-Werte
			try {
				setDefault();
			} catch (InterruptedException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			}
		}
	}

	public void buildGUI() {
		// Erstellt ein Panel.
		panel = new Panel(new BorderLayout());
		this.setBackground(new Color(255, 251, 255));

		// Erstellt ein Label.
		label = new Label();

		// Übergibt dem Panel die ProgressBar und das Label.
		panel.add(pb, BorderLayout.SOUTH);
		panel.add(label, BorderLayout.NORTH);

		// Übergibt dem Applet-Frame das Panel.
		add(panel);

		// Macht das Panel sichtbar.
		setVisible(true);
	}

public void runUpload(boolean fileUpload, boolean canceled) {
		// Setzt den Namen der Datei die hochgeladen werden soll(Nur bei
		// FileUpload).
		if (fileUpload == true) {
			jsPara.setFilename(jsPara.getFiledata()[fileIndex].getName());
			jsPara.setUpdatenoderef("");
		}

		// Holt den Mime-Type der Datei.
		jsPara.setContenttype(getMimeType());

		// Erstellt eine neuen Thread.
		thread = new Thread(new Runnable() {
			@Override
			public void run() {
				doit();
			}
		});
		// Startet den Thread mit der eigentlichen Upload-Logik.
		thread.start();

		// Wartet bis der Thread seine Aufgaben erledigt hat.
		try {
			thread.join();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

	}

	@SuppressWarnings("unchecked")
	public void doit() {
		try {
			// Das Boundary wird initialisiert.
			String boundary = "-----------------------------" + randomString()
					+ randomString();

			// Öffnet eine Verbindung zum Server.
			openConnection(boundary);

			// Schreibt die Request.
			writeReq.run(conn, jsPara, boundary, pb, fileIndex);
		} catch (IOException ioe) {
			ioe.printStackTrace();
		} catch (PrivilegedActionException pae) {
			pae.printStackTrace();
		}

		try {
			SwingUtilities.invokeAndWait(new Runnable() {
				public void run() {
					// Bekommt eine Antwort vom Server (Testzwecke!).
					try {
						responseCode = getResponseFromServer();
					} catch (IOException e) {
						e.printStackTrace();
					}

					// Trennt die Verbindung zum Server.
					disconnectFromServer();

					if (responseCode == RESPONSE_CODE_200) {
						// Löscht Datei vom lokalem System.
						AccessController.doPrivileged(new PrivilegedAction() {
							public Object run() {
								fileIO.deleteFile();
								return null;
							}
						});
					}
				}
			});
		} catch (InterruptedException ie) {
			ie.printStackTrace();
		} catch (InvocationTargetException ite) {
			ite.printStackTrace();
		}
	}

Danke im vorraus!
 
Zuletzt bearbeitet:

Sued_Faust

Bekanntes Mitglied
Dazu muss ich sagen, dass wenn ich die buildGUI() methode in die init() Methode meines Applets stecke, funktioniert es wunderbar.
Sollte noch Code fehlen bescheid sagen!

Gruß
 
Zuletzt bearbeitet:

Sued_Faust

Bekanntes Mitglied
Naja Also die Progressbar und das Label werden erst nachdem die Datei hochgeladen wurden also der komplette Code durchlaufen wurde angezeigt.
Ich würd es halt gern so haben, dass wenn die Methode runApplet() Aufgerufen wird meine Gui erstellt wird und dann die restlichen Aktionen, also das Hochladen statt findet.
Und wie gesagt wenn ich meine GUI durch die init Methode des Applets aufbauen lasse funktioniert es ja auch.
Was hab ich vergessen, damit es so funktionier wie beschrieben?
 

Sued_Faust

Bekanntes Mitglied
Tut mir leid verstehe nicht worauf du hinaus willst?!
Könntest mir das bitte näher erläutern.
Ich habe doch den rest in einem seperaten thread?!
 
S

SlaterB

Gast
ich will darauf hinaus, dass nach setVisible(true) die Aktion zu Ende ist, denn dann erst wird die GUI angezeigt,
das war der erste Satz, habe ich jetzt nochmal neu geschrieben, kann eigentlich nicht verständlicher sein, ich versuchs trotzdem..

und ich will darauf hinaus, das alles restliche danach eben nicht mehr kommt, weil ja die Aktion zu Ende sein soll,
es steht dir aber frei einen separaten Thread aufzumachen, der irgendwas macht, das stört dann normalerweise nicht bei der Anzeige

das war der zweite Satz, sollte dir inhaltlich auch klar sein, weil du ja kürzlich auch schon Threads verwendet hattest


edit:
> Ich habe doch den rest in einem seperaten thread?!

wo genau?
teste mit Auskommentieren, schalte testweise alles hinter buildGUI(); ab,
wenns dann erstmal klappt, dann Befehl für Befehl wieder rein und die siehst was wann wo warum langsam ist
 
Zuletzt bearbeitet von einem Moderator:

Sued_Faust

Bekanntes Mitglied
in der Methode runUpload starte ich einen Thread der dann den Upload tätigt, davor dürfte die Gui doch eigentlich nix blockieren oder?
 
S

SlaterB

Gast
> davor dürfte die Gui doch eigentlich nix blockieren oder?

dieser Satz ist komplett falsch ;)
wie gesagt: jeder einzelne Befehl nach setVisible(true) blockiert, bis dann endlich die Methode runApplet() fertig ist,
wer immer die aufruft kann noch mehr Dinge tun und so blockieren, aber vielleicht auch nicht, erstmal hier an runApplet() arbeiten

schreibe auch ans Ende der Methode runApplet()
> System.out.println("Ende runApplet, jetzt kann man bald was sehen");
bevor diese Meldung nicht kommt siehst du nix

------

> in der Methode runUpload starte ich einen Thread der dann den Upload tätigt,

richtig:

> // Startet den Thread mit der eigentlichen Upload-Logik.
> thread.start();


doch wie ich jetzt sehe steht direkt dahinter

> // Wartet bis der Thread seine Aufgaben erledigt hat.
> thread.join();


tja, so gehts nicht, so bringt der Thread wenig, die aktuelle Methode wird weiter aufgehalten, das Ende der Methode ist nicht in Sicht,
wozu das warten? nimm es raus, dann klappt es vielleicht schon
 

Sued_Faust

Bekanntes Mitglied
Das Applet wird aus einer JS-Funktion aufgerufen. Nach dem Aufruf es Applets soll des JS-Code weiter laufen. Wenn ich thread.join nicht drin habe läuft das Applet zwar durch aber der JS-Code paralel auch und das möchte ich nicht.

und wenn ich buildGUI in einen eigen Thread schiebe macht das kein unterschied, er zeigt mir da immer noch nichts an.
 

Sued_Faust

Bekanntes Mitglied
Ok es muss irgendwo in der For-schleife in runApplet und dem was du auch schon meintest der Join Methode liegen.
Kannst du mir sonst eine andere Möglichkeit anbieten, dass Applet abzuwarten bis es fertig ist, um dann im JS-Code vortzufahren?
 
Zuletzt bearbeitet:
S

SlaterB

Gast
wenn es überhaupt jemanden gibt, der was von JavaScript-Aufrufe an Applets weiß,
dann wird der/ die sich gewiss nicht hier in die Swing-Area zum Thema JProgressBar verlaufen

falls du JavaScript-Aufrufe an Applets thematisieren willst, dann in einem neuen entsprechend benannten Thema im richtigen Bereich?,
wobei es schon eine Aufgabe ist, den zu finden,

Applets ist auf der Hauptseite nur unter Deployment genannt, das klingt wenig interessant,
vielleicht doch hier bei AWT & Swing bleiben, vielleicht nur die aktuelle Themenüberschrift wenigstens um das Stichwort 'Applet' erweitern?
 

Sued_Faust

Bekanntes Mitglied
Also mittlerweile funktionier das erscheinen der GUI nach aufruf der Methode runApplet. Problem dabei ist das es nur funktioniert, wenn ich diese Methode mittels der vom Applet gegebenen start() Methode aufrufe :(. Das heißt wenn ich es in mein Webseite mit einbaue wird mir die GUI nicht mehr geladen, aber der Upload trotzallem getätigt. Woran kann das denn liegen?

"keiner ne Idee", wollte ich eigentlich nur wissen ob es eine alternative zu Join gibt um ein Thread abzuwarten.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Applets downloaden! AWT, Swing, JavaFX & SWT 2
S Applet Sind Applets bald tot? Was sagt Oracle? AWT, Swing, JavaFX & SWT 6
T Relativpositionierung bei Applets AWT, Swing, JavaFX & SWT 9
J Applet Kommunikation unter Applets AWT, Swing, JavaFX & SWT 2
aze Werden Applets browserunabhängig angezeigt ? AWT, Swing, JavaFX & SWT 3
A Hintergrundfarbe eines Applets ändern AWT, Swing, JavaFX & SWT 2
F 3 Fragen zu Applets AWT, Swing, JavaFX & SWT 4
S JTextField Context Menue fuer Applets..? AWT, Swing, JavaFX & SWT 14
S Logging in Applets AWT, Swing, JavaFX & SWT 2
T Pseudo-Transparenz für Applets -> Background grabben AWT, Swing, JavaFX & SWT 15
B Frage zu Applets generell AWT, Swing, JavaFX & SWT 2
G Größe eines Applets bestimmen AWT, Swing, JavaFX & SWT 6
P Zwei Fragen zu Bildern in Applets AWT, Swing, JavaFX & SWT 2
B Nach dem Verdecken des Applets ist die Zeichnung weg AWT, Swing, JavaFX & SWT 14
R Anwendungsbereich von Applets, möglichkeiten AWT, Swing, JavaFX & SWT 6
V awt oder swing für applets? AWT, Swing, JavaFX & SWT 19
O Problem beim Umwandeln eines Applets in eine Applikation AWT, Swing, JavaFX & SWT 15
S JFrame und Applets zusammen nutzen AWT, Swing, JavaFX & SWT 5
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 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
R JProgressBar-Verhalten AWT, Swing, JavaFX & SWT 5
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
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
P paintComponent-Methode wird dauernd neu aufgerufen AWT, Swing, JavaFX & SWT 2
G JavaFX LineChart Datenpunkte Markierung wird abgeschnitten AWT, Swing, JavaFX & SWT 1
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
S Javafx getResource-Pfad wird nicht erkannt AWT, Swing, JavaFX & SWT 7
U Warum wird zweimal die Affinetransformation estellt (2Dgraphics, Java)? AWT, Swing, JavaFX & SWT 31
DonBronson Gezeichnetes Objekt verschwindet nachdem erneut gezeichnet wird AWT, Swing, JavaFX & SWT 8
ProggersWorld JavaFX TextArea BackgroundImage wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Bild wird nicht geladen obwohl sie gefunden wird AWT, Swing, JavaFX & SWT 0
M Nach Export als Runnable Jar wird css nicht merh gefunden AWT, Swing, JavaFX & SWT 22
izoards Outlook Mail erstellen - Signatur wird nicht angezeigt. AWT, Swing, JavaFX & SWT 3
J actionperformed wird nicht aufgerufen/ repaint() AWT, Swing, JavaFX & SWT 6
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35

Ähnliche Java Themen

Neue Themen


Oben