Hallo liebe Leute,
wahrscheinlich ist das voll der Anfängerfehler,...
Ich habe ein JButton zum Speichern von Bildern... das mit dem speichernklappt auch wunderbar...
nur möchte ich das bevor gespeichert wird... ein Fenster aufpoppt, mit einer ProzessLeiste und somit signalisiert, dass gespeichert wird.. sobald der Speichervorgang abgeschlossen ist,.. soll ebenfalls eine Meldung angzeigt werden...
Folgenden Code habe ich:
Mein Problem ist, dass das Fenster zwar vor dem 'speichern' aufpoppt, aber erst danach das Image (ein GIF) geladen wird, mit dem entsprechenden Text..
Warum??
Vielen Dank?
wahrscheinlich ist das voll der Anfängerfehler,...
Ich habe ein JButton zum Speichern von Bildern... das mit dem speichernklappt auch wunderbar...
nur möchte ich das bevor gespeichert wird... ein Fenster aufpoppt, mit einer ProzessLeiste und somit signalisiert, dass gespeichert wird.. sobald der Speichervorgang abgeschlossen ist,.. soll ebenfalls eine Meldung angzeigt werden...
Folgenden Code habe ich:
Code:
public class SpeichernButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("Get 'Speichern' Event");
Vector toSend = new Vector();
JFrame frame = new JFrame("Speichern....");
frame.setLocation(400,300);
frame.setSize(500,100);
frame.getContentPane().setLayout(null);
JLabel label = new JLabel(savebar); //savebar ist das GIF als ImageIcon
JLabel label2 = new JLabel("Speichervorgang läuft - bitte warten");
label.setBounds(50,10,100,20);
label2.setBounds(180, 10, 300, 20);
frame.getContentPane().add(label);
frame.getContentPane().add(label2);
frame.setVisible(true);
frame.invalidate();
frame.validate();
/* create DataVector to send to ServerSocket*/
for (int i = 0; state.size() > i; i++) {
if (state.get(i).equals(true)) {
Vector toSave = new Vector();
toSave.addElement(images.get(i));
toSave.addElement(namen.get(i));
toSend.addElement(toSave);
} else {
}
}
try {
//172.16.184.72/21
one = new Socket(InetAddress.getByName("172.16.184.72"),
port);
ObjectOutputStream oos = new ObjectOutputStream(one.
getOutputStream());
oos.writeObject(toSend);
//successfull
new Thread(new Runnable() {
String note = new String(" Speicherung schlug fehl - wiederholen sie den Vorgang in einigen Minuten");
public void run() {
try {
char suc = (char) one.getInputStream().read();
if (suc == 'T') {
note =
" Speicherung war erfolgreich";
}
} catch (IOException e) {
System.err.println("Blockierung gelöst");
e.printStackTrace();
}
}
}).start();
Thread.sleep(5000);
one.close();
oos.close();
} catch (Exception ex) {
System.out.println(
"(ImageBrowser) Exception on 'Speichern' Event' - Socketconnection to Server:");
ex.printStackTrace();
System.exit(0);
}
}
}
Mein Problem ist, dass das Fenster zwar vor dem 'speichern' aufpoppt, aber erst danach das Image (ein GIF) geladen wird, mit dem entsprechenden Text..
Warum??
Vielen Dank?