Java Getriebe

Java und NetBeans

SecondaryLoop – Der saubere SwingWorker

Der Herr Ullenboom hat mich durch seinen Java-Blog auf ein interessantes Feature in Java 7 aufmerksam gemacht: java.awt.SecondaryLoop. Im Blogeintrag Hidden Java 7 Features – SecondaryLoop von Augusto Sellhorn 1 wird nett beschrieben, wie man nebenläufige Tasks für eine UI schreiben kann ohne den EDT zu blockieren und trotzdem seinen Quelltext „sauber“ zu halten.

Anwendungsfälle fallen mir beim meinen Programmen auf Anhieb einige ein, bei denen ich mit dem SwingWorker ein paar Klimmzüge veranstaltet habe.

Notes:

  1. Die Seite ist leider nur noch im Web-Archiv verfügbar

Java Scrapbook for NetBeans IDE – Geertjan’s Blog

Geertjan hat ein neues Plugin gebastelt: Java Scrapbook for NetBeans IDE. Quasi ein kleines „Notizbuch“ für Java Quelltexte mit der netten Fähigkeit diesen Quellcode auch ausführen zu können. Der Clou dabei ist, dass man dafür keine Klasse oder Methode schrieben muss, sondern einfach nur die gewünschten Anweisungen.

Das Feature kenne ich noch aus Eclipse Zeiten und habe es hin und wieder mal vermisst. Vielleicht schafft es das Plugin ja in die NetBeans IDE. Wäre cool.

Aufgabe: Zeige alle .properties eines Projekts an

Aufgabe: Erstelle ein NetBeans Modul mit dem alle .properties Dateien des aktuell ausgewählten Projekts in einem eigenen Fenster angezeigen werden können.

Ich finde, dass diese Aufgabe sich ganz gut als Einstieg in die NetBeans Platform Programmierung eignen kann. Sie erfüllt einen Zweck und all zu schwer sollte sie nicht sein, zumindest wenn man sich in die Grundlagen von Node, Lookup & Co eingearbeitet hat. Es werden in diesem Modul diverse dieser Grundlagenbereiche von NetBeans angesprochen aber der Aufwand hält sich dennoch in Grenzen. Read More

Selbstaktualisierende Anwendungen

Bei heutige Software wird vom Anwender schon fast vorausgesetzt, dass die Anwendung automatisch „im Internet“ nachschaut ob eine neuere Version seiner Selbst vorhanden ist und im positiven Fall dann auch automatisch eine Aktualisierung von sich selbst auf dem lokalen Rechner vornimmt. Allerdings stellt sich diese „Selbstverständlichkeit“ in der Praxis oft als erst zu nehmendes Problem heraus: Wie bitte schön, soll ich eine Datei (also die Jar-Datei) mit neuem Inhalt befüllen, wenn sie gerade geöffnet und für Änderungen gesperrt ist? Schließlich werden die .class-Datei aus der Datei gerade von der Java-VM verwendet. Vielleicht ist dies auch ein Grund, warum es keine Standardlösung von Java selbst existiert um mit dieser Problematik umzugehen. Read More

Installation von MinGW für NetBeans

Auch wenn das hier eigentlich ein Java-Blog ist, so möchte ich trotzdem einmal zeigen, wie einfach man NetBeans auch für die C/C++ Entwicklung einrichten kann. Die Anleitung passt sogar in einen Tweet:

Read More

Fragen zu mehrdeutige Methodenaufrufe

Ein kleines Codebeispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TestAnwendung {
  public static void main(String[] args) {
    beliebigeMethode(true, new Object());
  }

  public static void beliebigeMethode(
      boolean arg1, Object... argList) {
    // do something
  }

  public static void beliebigeMethode(
      Object arg1, Object... argList) {
    // do something
  }
}

Und eine kleine Frage dazu: Welche Methode wird aufgerufen? Read More

Farbschemata in JList anzeigen

Für zwischendurch einmal eine kleine Swing-Spielerei. Ich habe in unserer Anwendung die Möglichkeit für verschiedene Darstellungen verschiedene Farbschemata auszuwählen. Meist sind in diese Darstellungen irgendwelche Verläufe darzustellen wie etwa in einer „Surface Map„. Damit der Anwender aus den gegebenen Schemata auswählen kann, werden alle bekannten Farblisten in einer Liste gemeinsam angezeigt 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