Benny's Blog
Navigation: Home » Archives for Oktober 2009
27. Oktober 2009

Mittels der nachfolgenden Methode kann in Java ermittelt werden, ob ein Jahr ein Schaltjahr ist oder nicht:

    public boolean istSchaltjahr(int jahr)
    {
        return ( (jahr % 4 == 0 && jahr % 100 != 0) || (jahr % 400 == 0) );
    }

Die Methode “istSchaltjahr” bekommt als Argument das Jahr, für welches geprüft werden soll ob es sich um ein Schaltjahr handelt, in Form einer Ganzzahl (Integer) überliefert. Sofern das Jahr ein Schaltjahr ist, liefert die Methode den Rückgabewert “true”. Andernfalls wird “false” zurück gegeben.

Ein Methodenaufruf sieht wie folgt aus:

    istSchaltjahr(1987);

26. Oktober 2009

Beim Programmieren nach dem MVC-Prinzip empfiehlt es sich in Java eine eigene Controller-Klasse zu entwerfen, welche die Ereignisverarbeitung koordiniert. Der einfachste Weg wäre es, wenn man zu jedem GUI-Element jeweils eine eigene Beobachterklasse schreiben würde. Viel übersichtlicher ist es jedoch, wenn in nur einer Klasse bereits mehrere Ereignisse von verschiedenen Objekten behandelt werden können. Dazu muss man herausfinden, von welchem Objekt ein Ereignis ausgelöst wird.
 
Als Beispiel habe ich eine JComboBox namens bennyBox, welche vom ActionListener bennyBeobachter abonniert wird:

[...]
bennyBox.setActionCommand(“changed”);
bennyBox.addItemListener(bennyBeobachter);

Sobald sich etwas an der bennyBox tut, wird das dem bennyBeobachter gemeldet. Dabei wird das selbstgewählte Kommando “changed” gesetzt, welches dem bennyBeobachter hilft, das eingetroffene Ereignis spezifisch der Quelle bennyBox zuzuordnen. Damit das ganze funktioniert, muss im bennyBeobachter das Objekt des Ereignisses in den Typ des Auslöseobjekts (im Beispiel JComboBox) gecastet werden. Danach kann man über die Methode getActionCommand() das gesetzte Kommando abrufen und zur Ereignisbehandlung einsetzen. Das sieht dann in etwa so aus:

    @Override
    // Implementierte Methode “itemStateChanged” von “ItemListener”
    public void itemStateChanged(ItemEvent comboBoxEvent) {
        JComboBox triggeredBox = (JComboBox) comboBoxEvent.getItemSelectable();
        // Im String “kommando” steht im Ereignisfall “changed”:
        String kommando = triggeredBox.getActionCommand();
        if(kommando == “changed”){
        // Ereignisbehandlung    
        }
    }

25. Oktober 2009

Auf http://compressor.ebiene.de/ kann man seine CSS und JavaScript Dateien einfach und smart komprimieren. Es gibt dabei zwei unterschiedliche Stufen (basic compress und powerful compress), die die Leserlichkeit des Codes unterschiedlich stark einschränken. Falls man mit der CSS-Datei danach noch weiter arbeiten möchte, empfehle ich die Basis-Kompression.

Die CSS-Datei von bennyn.de (v1) konnte von 7028 Bytes auf 3879 Bytes geschrumpft werden. Das sind gut 45%. Die erweiterte Kompression würde nochmals 7% einbringen, was aber dazu führen würde, dass ich mich als Mensch ziemlich schwer tun würde, den Code noch zu entziffern. Einem Webserver macht sowas jedoch nichts aus, im Gegenteil.

25. Oktober 2009

Zusammen mit der Umstellung auf Winterzeit (ja, die Uhren haben sich gerade von 3 Uhr auf 2 Uhr zurück gedreht), stelle ich meine Homepage vom Standard WordPress-Design auf bennyn.de – Version 1.1 um. Das Layout dazu existierst schon ziemlich lange. Enstanden ist es im Rahmen eines Abschlussprojekts im Fach Mediengestaltung an der Fachhochschule Brandenburg. Mit großer Unterstützung von Holger Wettstein. Die Ameise stammt übrigens von der Designerin Ivana Forgo. Vielen Dank dafür!

An dieser Stelle möchte ich auch noch erwähnen, dass bennyn.de – Version 1.1 nur eine Vorab-Version ist. Diese Seite ist noch nicht für den Internet Explorer 6 geeignet. Wer Probleme mit der Auflösung hat, dem soll gesagt sein, dass diese Webseite für eine Bildschirmgröße von 1280×800 Pixeln (oder höher) angepasst wurde. Die verwendeten Grafiken sind übrigens PNGs, die im Gegensatz zu JPEGs wenigstens verlustfrei sind. Leider habe ich zum Start des neuen Designs noch kein Gästebuch parat und auch am Inhalt ist noch nichts dazu gekommen. Deshalb tut einfach so, als würde die Seite aussehen wie immer und schreibt mir euer Lob erst, wenn ich die Seite komplett fertig habe. *g* Inhaltliche Fehler und Bugs dürfen natürlich schon vorher gemeldet werden. Ich bin für jeden Hinweis dankbar.

Viele Grüße

Benny

23. Oktober 2009

Ein wichtiger Hinweis, herausgegeben von der DLRG, LV Westfalen:

Die Fahrer von Rettungsfahrzeugen und Ambulanzen haben bemerkt, dass 
bei einem Verkehrsunfall die meisten Verwundeten ein Mobiltelefon bei sich 
haben. Bei  verletzten Personen, die nicht mehr ansprechbar sind, 
wissen die Einsatzkräfte jedoch nicht, wer aus den langen Adresslisten 
zu kontaktieren ist.

Ambulanzfahrer und Notärzte haben also vorgeschlagen, dass jeder in 
sein Handy-Adressbuch die im Notfall zu kontaktierende Person unter 
einem einheitlichen Pseudonym eingibt.

Das international anerkannte Pseudo ist: ICE (= In Case of 
Emergency). Unter diesem Namen sollte man die Rufnummer der Person 
eintragen, welche im Notfall durch Polizei, Feuerwehr oder Erste Hilfe 
anzurufen ist. Sind mehrere Personen zu kontaktieren, trägt man ICE1, 
ICE2, ICE3 usw. ein.

Leicht durchzuführen, kostet nichts, kann aber viel erreichen. Wenn 
diese Meldung weitergeleitet wird, kann dieses Verfahren weltweit 
Anwendung finden.

Mit freundlichen Grüßen

Jens Giesen

Stellv. Technischer Leiter
Deutsche Lebens-Rettungs-Gesellschaft

Wer diesen Hinweis gelesen hat, sollte am Besten jetzt gleich, sofort (!) eine vertrauenswürdige Person unter dem Namen ICE in seinem Handy-Adressbuch speichern. Sonst vergisst man das nur wieder! Immerhin sind wir Menschen ja ziemlich ökonomisch (man könnte auch faul dazu sagen *g*). Ich habe es bereits getan.

Das ist übrigens kein Kettenbrief. Es handelt sich hierbei um eine offizielle Meldung.

21. Oktober 2009

Hilfreiche Eclipse Tastenkürzel (engl. shortcuts):

Alt + Pfeil auf/ab: Zeile verschieben
Strg + D: Zeile löschen
Strg + Leertaste: Auto-Vervollständigung
Strg + Pfeil auf/ab: Scrollen (ohne Cursorposition zu verlieren)
Strg + Shift + C: Ein-/Auskommentieren
Strg + Shift + M: Paket importieren (falls nötig)