![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
|
Themen-Optionen | Ansicht |
![]() |
#7 |
Hero
![]() |
![]() @renew: modaler dialog hats gebracht, DANKE!
![]() @all: aufgewärmt hab ich den Thread aus folgendem Grund: ich hab immer noch ein Problem mit Threads (und mit der Tatsache, daß sich danach so bequem Googeln lässt ![]() Wie dem auch sei, nachdem einige Datenbankzugriffe etwas länger dauern, hab ich mir gedacht, daß so ein Fortschrittsbalken doch bequem zu haben wäre. Testhalber hab ich 3 Klassen geschrieben und im Test funktioniert es auch brav (wobei zu sagen ist, daß es nur funzt, wenn ich mit Thread.start() arbeite, bei Thread.run() ärgerlicherweise nicht) Anbei der Code: 1) Class für den ProgressBar Code:
public class HelloLoop implements Runnable { private int pValue = 0; private JFrame frame = new JFrame("Progress Bar Trial"); private JProgressBar progress = new JProgressBar(); public void setMaximumSize(int max) { progress.setMaximum(max); } public void setActualValue(int val) { pValue = val; } public void disableProgressBar() { frame.setVisible(false); } public void enableProgressBar() { frame.setVisible(true); pValue = 0; } public void run() { progress.setPreferredSize(new Dimension(250,25)); progress.setValue(0); progress.setStringPainted(true); progress.setIndeterminate(false); frame.setLayout(new FlowLayout()); frame.add(progress); frame.pack(); while (true) { progress.setValue(pValue); try { Thread.sleep(50); } catch (InterruptedException e) {} } } } Code:
public class HelloDatabase implements Runnable { private HelloLoop pbar; private int step = 0; public void setProgressBar(HelloLoop p) { pbar = p; } public void rumbleDatabase() { pbar.setMaximumSize(variable); pbar.setActualValue(0); pbar.enableProgressBar(); //query: daten einlesen //query: neuen table anlegen //query: daten in neuen table einfügen //+jeweils erhöhung der zählvariable pbar.disableProgressBar(); } //end rumbleDatabase public void run() { while (true) { pbar.setActualValue(step); try { Thread.sleep(50); } catch (InterruptedException e) {} } } } Code:
public class HelloThreads { public static void main (String[] args) { HelloDatabase database = new HelloDatabase(); HelloLoop myProgress = new HelloLoop(); database.setProgressBar(myProgress); Thread data = new Thread (database); Thread bar = new Thread (myProgress); data.start(); bar.start(); database.rumbleDatabase(); } } Wo liegt der Fehler?
____________________________________
Einstein, Pascal and Newton are playing hide and seek. Einstein is \"it\" so he faces the wall, closes his eyes and counts to π. Pascal runs off like an idiot but Newton pulls out a piece of chalk and draws a 1m x 1m square on the ground and then stands in it\'s centre. Einstein\'s done counting and turns around and sees Newton, so he grabs him and screams \"I found Newton!\" Then Newton smirks and says, \"I\'m not Newton, I\'m Pascal\". |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|