Hallo zusammen,
ich habe die Beiträge zu diesem Thema gelesen, aber ich komme einfach nicht weiter! Ich glaube Ihr habt mehr Erfahrungen mit SWT.
Ich würde gerne in einem anderen Thread ein Progressbar anzeigen, während ich Daten aus einer Datenbank lese. Wenn die Daten da sind, dann schalte ich die Progressbar ab.
Der Thread, der die Progressbar anzeigen soll bleibt hängen, bis die Tabelle mit Daten gefüllt ist, dann läuft der Thread erst !?!
Die ProgressBar startet eigentlich selber einen Thread! Indem man die Klasse allokiert! Oder ? Wenn ich z.B. einfach eine ProgressBar in einer Composite anzeige, dann läuft automatisch!
ich bin für jede antwort dankbar!!!
Z.B.
MyProgressBar.start();
fillTable();
MyProgressBar.stop();
Hier ist der Code:
public static void start(final Shell aShell)
{
final Shell shell = new Shell(aShell);
shell.setLayout(new FillLayout());
ProgressBar bar = new ProgressBar(shell, SWT.INDETERMINATE);
bar.setSize(500, 20);
shell.setSize(300, 400);
shell.pack();
shell.open();
thread = new Thread(new Runnable() {
public void run()
{
while (! shell.isDisposed()) {
Display.getDefault().asyncExec(new Runnable() {
public void run()
{
bar.setSelection(bar.getSelection()+1);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
thread.start();
Lesezeichen