2009-06-19

Noch mehr Minimalismus

Vor einiger Zeit hatte ich in meinem Eintrag Reduzierung auf das Wesentliche auf die beiden Programme WriteRoom und Dark Room hingewiesen. Die Idee dieser Anwendungen ist, sich beim Schreiben von Texten auf nichts als den Text zu konzentrieren.
Auf sehr lustige Weise auf die Spitze wird das Ganze durch das Programm Typewriter getrieben, eine Schreibmaschinensimulation in Java. Lesen Sie sich doch einfach das folgende Posting durch...

2009-06-11

Hacking JavaFX Binding

Nach einer etwas längeren Pause habe ich mal wieder einen (englischsprachigen) Artikel auf java.net veröffentlicht. In Hacking JavaFX Binding beschäftige ich mit der Frage, inwieweit auch Swing-Entwickler von JavaFX profitieren können.

JavaFX Script enthält den bind()-Operator, mit dem sich auf extrem einfache und bequeme Weise Bindungen zwischen Variablen und Objekten herstellen lassen. Die JavaFX-Runtime beinhaltet ein kleines Framework, das die notwendige Infrastruktur bereit stellt. Mein Artikel stellt die wichtigsten Klassen dieses Frameworks vor und verwendet es, um in einer kleinen Swing-Anwendung data binding zu realisieren. Insofern ist dieser neue Artikel die konsequente Fortsetzung meines Artikels Binding Beans, der vor einem Jahr erschienen ist.

In dem Artikel hatte ich anhand einer kleinen Lautstärkeregelung zwei Binding-Frameworks für Swing miteinander verglichen. Der neue Artikel greift nicht nur die Anwendung auf, sondern auch deren Struktur. Auf diese Weise lässt sich das JavaFX Binding Framework sehr schön mit den beiden anderen vergleichen. Es ist erstaunlich, wie gut es hier mithalten kann, obwohl die Klassen doch nie für eine öffentliche Nutzung vorgesehen oder freigegeben sind.

2009-06-09

Quelltext zu TKDatePicker online

Ich habe die Arbeiten an meiner Kalenderkomponente TKDatePicker soweit abgeschlossen, dass ich glaube, den Quelltext dieser Version herausgeben zu können.
Screenshot von TKDatePicker
TKDatePicker realisiert eine moderne Datumsauswahl, die mit sehr geringen Aufwand in eigene Swing-Anwendungen integriert werden kann. Sie wird unter der GNU Lesser General Licence v3 zur Verfügung gestellt. Um die Komponente in Aktion zu sehen, klicken Sie bitte auf den folgenden Link:
Demo von TKDatePicker starten
TKDatePicker realisiert insgesamt vier Ansichten: Tage, Monate, Jahre und Jahrzehnte. Zwischen diesen kann durch Anklicken von Elementen der Kopfleiste gewechselt werden.
Für die Folgeversionen steht auf dem Programm:
  • umfangreichere Dokumentation
  • stärkere Java-“Beanifizierung”
Wenn Sie Anregungen, Fragen oder Probleme haben, scheuen Sie sich bitte nicht, mit mir Kontakt aufzunehmen. Selbstverständlich freue ich mich auch über Hinweise auf Programme, die TKDatePicker verwenden.

2009-06-05

Einem Datumscontrol auf die Eigenschaften geschaut

Microsoft liefert mit seinen Common Controls seit langer Zeit eine Datumsauswahl (Date/Time Picker) aus. Früher sah die so aus:
Date / Time Picker v5
Dieser Screenshot zeigt die Komponente unter Vista mit den Common Controls V5. Ab Version 6 können die Common Controls mit Themes versehen werden. Dann präsentiert sich die Datumsauswahl so (ebenfalls unter Vista):
Date / Time Picker v6
Es gibt von Microsoft übrigens ein sehr schönes Programm, mit dem man sich die Komponenten der Common Controls entspannt ansehen kann. Den Control Spy können Sie hier herunter laden. Der Download enthält zwei Versionen des Werkzeugs, die auf die beiden bereits angesprochenen Versionen der Common Controls zugreifen. Das kann man nutzen, um sich Unterschiede in der Implementierung anzusehen. Dies möchte ich im Folgenden tun.
Zunächst zwei Screenshots der alten Version:
Monatsauswahl mittels Popup-Menü
Hier ist sehr schön zu sehen, wie man zu einem bestimmten Monat innerhalb eines Kalenderjahres springt: mit Hilfe eines Popup-Menüs.
Jahresauswahl mittels Up/Down
Dieser Screenshot zeigt, wie man zu einem bestimmten Jahr navigiert. Der Control Spy nennt dieses Element Up/Down. In Swing entspricht dies einem JSpinner.
Jetzt zu der neueren Implementierung. Sie unterscheidet nicht zwischen Klicks auf den Monatsnamen und das Jahr. Stattdessen sieht die Komponente nach dem ersten Klick so aus:
Monatsauswahl
Anstelle der Tages eines Monats sind die Monate eines Jahres zu sehen. Klickt man ein Monat an, landet man wieder in der bekannten Monatsansicht. Ein erneuter Klick in den Kopfbereich (auf das Jahr) schaltet auf die folgende Ansicht um:
Jahresauswahl
Auch hier gilt: ein Klick auf ein Jahr springt wieder eine Ebene nach oben, also in die Monatsauswahl. Ein Klick in den Kopfbereich bringt uns in die letzte Ansicht:
Auswahl von Dekaden
Die Dekadenauswahl funktioniert wie die Jahresauswahl. Ein Klick auf eine Dekade zeigt eine entsprechende Jahresauswahl. In allen Ansichten kann man mit den beiden Scrollpfeilen blättern, also monats-, jahres-, dekaden- und jahrhundertweise.
Die Auswahl eines Monats ist ohne Frage äußerst elegant. Die Bedienung der Komponente wird nicht durch ein Popup-Menü gestört. Ob hingegen der Tausch eines Textfeldes durch drei zusätzliche Ansichten zu einer schnelleren und angenehmeren Bedienung führt, ist Geschmackssache. Ich vermute, die Bedienung wird flüssiger. Kurzum: mir gefällt die neue Variante sehr gut.
Ein letzter Hinweis: Neben der hier gezeigten Date/Time Picker-Komponente gibt es auch eine reine Kalenderkomponente ohne Textfeld: Month Calendar.

2009-06-04

Zurück in die Zukunft

Die im letzten Eintrag vorgestellte Datumsauswahl muss leider noch bis zum Wochenende warten. Zwischenzeitlich möchte ich Ihnen mit einem Schmunzeln eine Reise in die Vergangenheit und wieder zurück präsentieren. Bei der Arbeit am Rechner bot sich mir nämlich folgendes Bild:
Guru Meditation
Die Guru Meditation ist wohl jedem, der sich in den 80ern für Homecomputer interessierte, ein Begriff. Wer mehr darüber wissen will, sollte sich den folgenden Wikipedia-Artikel zu Gemüte führen. …eine schöne Erinnerung, die die VirtualBox-Entwickler uns hier präsentieren.