G
Guest
Gast
Hallo,
möchte eine Statusmeldung am Bildschirm ausgeben und diese nach einer bestimmten Zeit (verweildauer) wieder ausblenden (da im Hintergrund ein Report erstellt wird)
habs jetzt so versucht:
problem ist (anscheinend), dass das System mit dem tatsächlichen grafischen Aufbau der klasse Statusmeldung noch nicht fertig ist, bevor der Code Thread.sleep(verweildauer); erreicht, da auf dem Statusfenster keinerlei Label (wird in der Methodeg etJContentPane() ja erstellt) erscheint.
(wenn ich nämlich this.dispose() weg nehme, dann wird das Label (und die Rotfärbung) nach der verweildauer Angezeigt/Aufgebaut.
Frage:
wie kann ich es machen, dass die Klasse Statusmeldung vorher einwandfrei aufgebaut wird, bevor eben der Code Thread.sleep(verweildauer) abgearbeitet wird.
Bin aber auch für andere Lösungsansätze dankbar.
christoph
möchte eine Statusmeldung am Bildschirm ausgeben und diese nach einer bestimmten Zeit (verweildauer) wieder ausblenden (da im Hintergrund ein Report erstellt wird)
habs jetzt so versucht:
Code:
Statusmeldung statusmeldung = new Statusmeldung("Report","Report wird erstellt, einen Moment bitte...",300,300,200);
statusmeldung.repaint();
report_vtb = new Report_VTB(db_verb, this, "KVR",f_xml_datei, f_html_datei);
statusmeldung.repaint();
statusmeldung.statusmeldung_ausblenden(3000);
classe Statusmeldung:
public Statusmeldung(String caption, String text,int x_pos, int y_pos, int height)
{
super();
this.setContentPane(getJContentPane());
this.setBounds(x_pos, y_pos, 200, 600);
this.setIconImage(java.awt.Toolkit.getDefaultToolkit().getImage("grafs/sanduhr.gif"));
this.setTitle(caption);
this.show();
}
private JPanel getJContentPane()
{
if (jContentPane == null)
{
jContentPane = new JPanel();
jLbl_2 = new JLabel("Test");
jLbl_2.setBounds(40, 40, 100, 15);
jContentPane.add(jLbl_2);
jContentPane.setBackground(Color.red);
}
return jContentPane;
}
Methtode statusmeldung.statusmeldung_ausblenden
public void statusmeldung_ausblenden(int verweildauer)
{
try
{
Thread.sleep(verweildauer);
}
catch (Exception ex)
{
System.out.println("Statusmeldung.statusmeldung_ausblenden() "+ex.getMessage());
}
this.dispose();
}
problem ist (anscheinend), dass das System mit dem tatsächlichen grafischen Aufbau der klasse Statusmeldung noch nicht fertig ist, bevor der Code Thread.sleep(verweildauer); erreicht, da auf dem Statusfenster keinerlei Label (wird in der Methodeg etJContentPane() ja erstellt) erscheint.
(wenn ich nämlich this.dispose() weg nehme, dann wird das Label (und die Rotfärbung) nach der verweildauer Angezeigt/Aufgebaut.
Frage:
wie kann ich es machen, dass die Klasse Statusmeldung vorher einwandfrei aufgebaut wird, bevor eben der Code Thread.sleep(verweildauer) abgearbeitet wird.
Bin aber auch für andere Lösungsansätze dankbar.
christoph