ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
1754
1754
EMPFEHLEN
-
Hio, also ich habe Folgendes Problem.
Ihr müsst euch vorstellen ich habe einen kleinen Frame in diesem ist eine simple JTable mit ein paar Spalten. Die Daten in den Spalten werden aus einer SQL Datenbank abgerufen. So nun will ich, dass die Daten in der Tabelle immer aktuell sind und mit einem Timer werden sie immer wieder neu abgerufen. So nun werden die Daten zwar abgerufen aber der Frame wird nicht neu gezeichnet somit sieht man nichts von den neuabgerufenen Daten. Die tolle repaint() Methode lässt sich aber nicht über einen Timer aufrufen, da dieser nur static Methoden aufrufen kann...
Ich bin am verzweifeln...
Danke Error999
-
Hi,
habe mich mit Timern und TimerTasks nicht so beschäftigt, aber warum sollte das nur statische Methoden funktinieren?
Vielleicht würde Dir auch ein TableModelListener helfen, der bei einer Änderung der Tabellendaten aufgerufen wird.
http://java.sun.com/docs/books/tutor...ml#modelchange
Gruß
joschi
-
Ich seh jetzt zwar nicht deinen Quellcode aber ich tippe mal drauf, dass du vollkommen sinnloser weise irgendwo soetwas stehen hast:
In solchen Fällen ist es oft ein problem dass man von dem statischen Objekt (nicht Klasse) nicht mehr an die nichtstatischen Sachen drann kommt.
Du hast zwei Möglichkeiten: entweder dein statisches Objekt hält eine Referenz auf deinen Frame, an dem das ding aufgerufen wird. Oder du machst deinen Timer nicht statisch.
P.S. Des weiteren Tippe ich mal drauf, dass du der grausamen Sitte verfallen bist Deine Hauptklasse von JFrame erben zu lassen. Das macht IMMER Probleme weil du dann Programmlogik und Darstellung nicht mehr getrennt hast.Geändert von Andibert (30.09.08 um 15:03 Uhr)
There are 10 kind of people, those who understand binary and those who don't.
-
Jo du hast vollkommen recht, ich habe
1.Code :1
static Timer t = new Timer();
in meinem Code stehen und wenn ich einfach mal static weglasse, meckert er rum, wenn ich versucheCode :1
t.scheduleAtFixedRate(new Task(), 1000, 5000);
zu benutzen denn für den Schedule will er etwas statisches haben da kann ich machen was ich will.
Und natürlich lasse ich meine Hauptklasse von Frame erben... hab ich nun mal so gelernt und mir fällt leider nicht ein wie man es besser machen könnte.
Edit: Hab es hinbekommen.Geändert von Error999 (30.09.08 um 15:44 Uhr)
-
-
Was meckert er denn?
Vermutlich greifst du dann aus einem Statischen Kontext auf t zu.
Irgentwo musst du dich entscheiden dich von statischen Einstiegspunkt main() in die nichtstatische Welt zu begeben.
Ich mach das normalerweise immer ganz am Anfang mit
MyApplication a = new MyApplication();
a.init();
Wobei ich die init methode verwende um das Programm tatsächlich zu starten.
Static sollte nur verwendet werden wenn man wirklich verstanden hat was static bedeutet und wenn man es wirklich braucht. In allen anderen Fällen geht man das Risiko ein irgentwann irgentwo etwas nicht statisch machen zu müssen.... und dann klappt gar nichts mehr.
Bei meinem ersten Projekt was die 1000 LOC überstiegen hatte hatte ich diese Probleme auch, um mir dann als es gar nicht mehr ging nen Buch zu nehmen und zu lernen wie genau static funktioniert.There are 10 kind of people, those who understand binary and those who don't.
Ähnliche Themen
-
static Methode in einem Interface
Von gollrich im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 9Letzter Beitrag: 01.12.11, 15:50 -
non-static variable cannot be referenced from a static context
Von UGG116 im Forum Java GrundlagenAntworten: 7Letzter Beitrag: 10.06.10, 23:16 -
Static Variable in Methode
Von higret im Forum C/C++Antworten: 5Letzter Beitrag: 25.05.05, 15:20 -
C++ .Net Thread ohne static methode
Von splizzer im Forum .NET ArchivAntworten: 1Letzter Beitrag: 21.03.05, 09:13 -
static, non-static... was denn nun & warum überhaupt
Von WebOlli im Forum JavaAntworten: 8Letzter Beitrag: 25.05.04, 15:31





Zitieren
Login





