Java Getriebe

Java und NetBeans

Informationen zu den Grundlagen der Java Entwicklung. Fehler, die gerne von Anfängern gemacht werden. Wissenswertes zu Java Klassen.

Java Namespaces

Ich merke bei meinen Azubis immer mal wieder, dass ihnen der Sinn oder Unsinn der Paket-Anweisung (package) nicht ganz bewusst ist. Die Klassen werden zwar in irgendein Paket abgelegt, aber warum unsere Paket alle ausgerechnet mit de.rwthaachen.wzl.gt wird nicht hinterfragt. So kommt es gerade bei den ersten eigenen Projekten regelmäßig vor, dass als Paket de.nachname.projekt verwendet wird. Meist blicke ich dann ich weit aufgerissene Augen wenn ich Frage „gehört dir die Domain ’nachname.de‘ überhaupt?“

Read More

Kleine Datenverwaltung mit ObservableProperties

Daten. Fluch und Segen der Softwareentwicklung. Ohne das eine würde es das andere nicht geben. Die Kunst ist, mit diesen Daten richtig umzugehen. Manch einer arbeitet daran ein Leben lang. Manche glauben sie gehören nicht zu dieser Gruppe.

Ein Problem, vor dem man immer wieder steht und ich merke, dass gerade Programmieranfänger in der Oberflächenprogrammierung sehr häufig vor der Frage stehen: „Wie bekomme ich es denn hin, dass das eine UI Element an die Daten des anderen UI Elements kommt?“ Vielleicht ohne es zu merken hat der Neuling die zentrale Frage 1 bei der Oberflächenprogrammierung gestellt. Denn genau das ist das Hauptproblem bei dieser Software: Daten von A nach B kopieren um dort weiter verarbeitet zu werden. Die Schwierigkeit besteht meist darin, dass A von B nicht unbedingt etwas weiß.

An dieser Stelle wird meistens das so genannte Model-View-Controller (MVC) Konzept angeführt. Also die Trennung in eine Datenschicht (Model), der Anzeige (View), und den Benutzereingaben (Controller). Häufig werden View und Controller aber nicht so deutlich getrennt, so dass man in der Praxis häufig eine Zweiteilung hat. Entscheidend ist vor allem, dass die Daten vollständig getrennt von dem Rest der Anwendung stehen.

In diesem Artikel möchte ich eine kleine Hilfsklasse zeigen, die gerade in kleineren Anwendungen unheimlich viel Arbeit ersparen kann und auf eine recht simple Art und Weise die Datentrennung bewerkstelligt: ObservableProperties Read More

Notes:

  1. in meinen Augen

Externe Prozesse sicher starten

Wer von Java aus ein anderes Programm starten möchte kann dies recht einfach über den Befehl Runtime.exec erledigen. Seit Java 1.5 gibt es die Klasse [javadoc]java.lang.ProcessBuilder[/javadoc] mit der die Manipulation der Parameter für den externen Prozess noch einfacher von der Hand geht. Da auch Runtime.exec den ProcessBuilder intern verwendet sollte dieser im eigenen Quelltext immer bevorzugt werden.

Interessant wird diese Funktionalität aber erst, wenn man von Java aus andere Konsolenanwendungen starten möchte. Also Programme die keine graphische Benutzeroberfläche haben und ihre Ausgaben in die so genannte „Konsole“ schreiben. Unter Windows werden hier oft die Batchdateien verwendet, unter Linux sind es die Shellskripte. Read More

Annotations – geheimnisvolle Markierungen im Quelltext

This entry is part 1 of 1 in the series Annotation Processor

Seit der Version 1.5 kennt Java die so genannten Annotations. Die meisten Java Entwickler werden dieses Sprachkonstrukt nur als „Nutzer“ erfahren. Jeder wird schon mal eine @[javadoc]java.lang.Deprecated[/javadoc] oder @[javadoc]java.lang.SuppressWarnings[/javadoc] Annotation genutzt oder zumindest gesehen haben. Unter bestimmten Voraussetzungen kann es aber durchaus interessant sein eigene Annotations zu schreiben. Read More

Storage – Datenverwaltung in einer GUI

This entry is part 1 of 1 in the series Storage

Es gibt ziemlich viele verschiedene Möglichkeiten Daten innerhalb der eigenen Benutzeroberfläche bereit zu stellen und an die verschiedenen Stationen und Element der GUI zu verteilen. DIE Lösung wird es denke ich niemals geben. Reicht für den einen ein Singleton für alles, will der Andere um jeden Preis so ein Singleton vermeiden. Wird die Anwendung größer und komplexer reicht selten ein einzelnes Datenobjekt aus um an alle seine Daten heran zu kommen. Zu viele Datenobjekte lassen sich aber auch nur schwer handhaben.

Dieser Artikel soll der Beginn einer kleinen Serie über meine Art der Datenverwaltung, die ich jetzt seit einiger Zeit in meinen Swing-GUIs verwende. Die Serie soll beschreiben, wie die grundlegende Funktion ist und wie die Kommunikation mit den GUI Elementen dieser Datenverwaltung von Statten geht. Read More

Start-, Programm- und Arbeitsverzeichnis

Ich wenn sie immer mehr an Gewicht verlieren je mehr man mit grafischen Oberflächen arbeitet bereit meiner Erfahrung nach gerade Programmieranfängern der Umgang mit (Verzeichnis-)Pfaden immer wieder Schwierigkeiten. Damit will ich nicht sagen, dass sie nicht wissen, was ein Verzeichnis ist, sondern eher die Ungewissheit in welchem Verzeichnis sie denn gerade „arbeiten“. Der Unterschied zwischen dem Start-, Programm- und Arbeitsverzeichnis ist den meisten nicht klar. Read More