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:
Danke im vorraus!
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: