Seiten

Donnerstag, 3. Februar 2011

Java Development 3-2-2011

So geht ein weiterer Java-Lastiger Tag zu ende. Heute habe zusammen mit meinem Ausbilder den ganzen Tag an der Datenbankanbindung und der Übertragung der Daten an die SQL-Datenbank gearbeitet. Mit gutem bis mäßigen Erfolg. Das Auslesen der Attribute aus der Datenbank ist nun möglich. Das heißt, die Comboboxen füllen sich jäh nach Eintrag aus der Datenbank, was dafür sorgt, dass die Boxen ohne Programmieraufwand mit weiteren Einträgen versehen werden können. Auch gelingt das Auslesen der in den Boxen angeklickten Einträgen und die Übertragung des Inhaltes. Allerdings möchte ich mich systemintern irgendwie an die von der Datenbank verwendeten IDs halten ( Einem Integer-Wert wird ein String gegenübergestellt ). Allerdings bilden diese Integer IDs, im Gegensatz zu Strings eine Verwechslungsgefahr mit sich. Ich glaube, dass ich das morgen nochmal mit Sebastian klären muss.


Die Tage scheinen einfach zu kurz für effektives Programmieren zu sein. Ansonsten habe ich heute die erste echte Auswertung mit meinem kleinen PHP- Tool gemacht und an den zuständigen Mitarbeiter übergeben.
Dabei ist aufgefallen, dass es beim Ausrechnen der Schweizer- Werte zu Unstimmigkeiten kommt, was mit der Mehrwertsteuer zusammenhängt. Aber ein kurzes Suchen hat das Problem innerhalb von wenigen Minuten behoben. Es hat sich auch gezeigt, dass das Tool wohl nicht ausreichend getestet wurde. Ich habe haufenweise Ideen es zu verbessern, allerdings müsste ich es dafür fast von Grund auf neu schreiben. Hinzufügen werde ich irgendwann allerdings einen Generator für die Datenbankabfrage. Dieser generiert dann ein Datum in der von SQL verlangten Form.

Mittwoch, 2. Februar 2011

Java Development 2-2-2011

Heute war ein großer Java - Tag.

Für die Arbeit an dem Zeiterfassungs - Tool musste ich eine Uhr schreiben, die für den Benutzer mitläuft. Hörte sich ursprünglich shr einfach an, war aber ein programmiertechnischer Alptraum. Für jemanden, der von Threading noch nie etwas gehört hat möglicherweise nicht zu lösen.

Zuerst wollte ich, weil mich der Ehrgeiz gepackt hat natürlich eine eigene Uhr schreiben, die auch richtig funktioniert. Nachdem ich erkannt habe was für Anforderungen daraus erwachsen ( durch die Notwendigkeit einen parallelen Prozeß laufen zu lassen, der die Uhrzeit berechnet ) habe ich mir überlegt einfach einen Abfrage der Systemuhr zu übergeben. Diese Abfrage muss aber auch irgendwo gemacht werden.

Sicher kann diese Berechnung nicht die GUI Klasse durchführen, da sie die etwas störende Eigenschaft hat bei Aufgaben, die nichts mit der Darstellung der GUI zu tun haben und über die einfache einmalige Belegung von Variablen hinausgehen einzufrieren, sich zu benässen und zu sterben.
Somit musste ich ohnehin einen parallel laufenden Thread erzeugen und habe mich wieder daran gemacht meinen eigenen kleinen Wecker zu schreiben.
Vorneweg: verwendet habe ich die Java Timer Klasse, deren wunderbare scheduler-Methode allerdings ein Objekt vom Typ Timertask benötigt. Beide Threadfunktionen. TimerTask stellt das run() - Interface zur Verfügung, dass implementiert werden muss. Also habe ich mir zwei nette kleine Klassen geschrieben, die eine ein TimerTask und die andere ein Timer mit einer wunderbaren Singleton-Funktion, die dafür sorgt, das beim Klicken auf die Start methode, bei der eigentlich ein Timer erzeugt und gestartet wird, keine unnötigen Instanzen erzeugt werden.
Mein nächstes Problem war, dass der Timer nur über eine close() - Methode verfügt, die keine Rückgabe hat und den Thread beendet. Durch die Singleton konnte ich aber nicht einfach einen neuen Thread erzeugen. Durch Suchen stieß ich darauf, dass man auch die TimerTasks wunderbar beenden und neu in den Timer einstellen kann. als ich schließlich das erkannt habe war nur noch ein wenig codegeschiebe nötig.

Zum Schluß habe ich mich noch mit der ziemlich unübersichtlichen und unangenehmen GUI erstellung von java beschäftigt. Dank des Visual Editors, der mir wenigstens Einblicke ermöglichte konnte ich mich Stück für Stück an die wunderbaren gridBagConstraints und add()-Funktionen heranpirschen.
- kann man das nicht irgendwie Praktischer umsetzen?

Ja das war mein Java- Tag

Dienstag, 1. Februar 2011

java Development 1-2-2011

Ein bischen java Entwicklung am Nachmittag um die grauen Zellen zu stimulieren. Aber mit Stimulation war es mir heute nicht so. Ich hatte vor meine am Freitag gecodeten threadlastigen.. Methoden zu verwenden, um einen Hübschen kleinen Timer zu schreiben. Ich hab den auch soweit fertig, allerdings krieg ich noch kein schönes Zeitformat hin.
Mein Ausbilder möchte, das ich intern die daten der Systemuhr verwende, da diese natürlich genauer geht.
Also habe ich mich daran gemacht die methode System.CurrentTimeMillis() zu verwenden. Theoretisch kann ich diese auch für den Timer verwenden, wenn ich jedes mal bei einer Änderung dieses Parameters eine Ausgabe mache.
Es liegt wohl auch an der heute geschriebenen Klausur, dass ich Gehirntechnisch heute nachmittag nicht so ganz auf der Höhe war. Desweiteren musste ich mich erst an die Attributsetzung der GUI-Elemente herantasten, was in diesem Fall ( Compilersettings ? oder generell ? ) nur über die entsprechenden get und set - Methoden möglich war. Dann die Typische cannot make a static reference to a non-static Object Fehlermelderei, aber nach ein wenig herumjonglieren hat auch die Zuweisung und die Ausgabe der fortlaufenden Zeit in der GUI geklappt.

So das war der Dienstagnachmittag. Morgen hoffe ich, die nötigsten Methoden fertigstellen zu können.