Bilder konvertieren

Eine große Bildmenge kann einfach mit ImageMagick in verschiedene Zielformate gewandelt werden. Die Installation des ImageMagick-6.3.3-10-Q16-windows-static.exe Downloads klappt ohne Schwierigkeiten. Die folgende Skriptzeile wandelt alle GIMP Dateien im aktuellen Ordner in PNG-Grafiken um.

FOR %%b in (*.xcf) do convert "%%b" "%%b.png"

Tastatur zentral nutzen

Der klassische Weg eine Komponente und eine Tastenkobination zu verbinden führt über die Key– und ActionMap.

[code lang=“java“]Action doNothing = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
System.out.println(„F2“);
}
};

jPanel.getInputMap().put(
KeyStroke.getKeyStroke(„F2“), „doActionF2“);

jPanel.getActionMap().put(„doActionF2“,
doNothing);[/code]

Jede Komponente kennt drei InputMap, um nut bei bestimmten Fokuszuständen reagieren zu müssen.

Möchte man eine Tastenkombination für die gesamte Anwendnung zur Verfügung stellen, muss man den KeyboardFocusManager nutzen.

[code lang=“java“]KeyEventDispatcher disp = new KeyEventDispatcher() {
public boolean dispatchKeyEvent(KeyEvent evt) {
if(evt.getKeyCode() == KeyEvent.VK_F2 &&
evt.getId() == KeyEvent.KEY_RELEASED){
System.out.println(„F2“);
}
return true;
}
};

KeyboardFocusManager.getCurrentKeyboardFocusManager().
addKeyEventDispatcher(disp);[/code]

Weitere Informationen unter:

http://java.sun.com/products/jlf/ed2/book/
http://java.sun.com/docs/books/tutorial/
http://javamagazin.de/itr/online_artikel/

Tabellenauswahl verarbeiten

[code lang=“java“]jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

ListSelectionModel rowSM = jTable.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {

if (e.getValueIsAdjusting()) return; // ignore extra messages

ListSelectionModel lsm = (ListSelectionModel) e.getSource();

if (lsm.isSelectionEmpty()) {
// no rows are selected
} else {
int selectedRow = lsm.getMinSelectionIndex();
}
}
});[/code]

Auswahl über Links in einem JEditorPane

Füllt man ein JEditorPane mit Links, kann man die Benutzer-Klicks darauf auswerten und für weitere Aktionen nutzen.

Schritt 1: Wir registrieren im Konstruktor unserer GUI für das JEditorPane einen HyperlinkListener . Dieser informiert uns dann bei entsprechenden Benutzer-Klicks.

[code lang=“java“]import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;

jEditorPane.addHyperlinkListener(new HyperlinkListener(){
public void hyperlinkUpdate(HyperlinkEvent evt) {
if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
jTextField.setText(evt.getURL().toString().substring(7));
}
}
});[/code]

Schritt 2: Der Html-Content muss aufgebaut werden. Wichtig ist, das wir den Links mit „http://“ beginnen. Unser Listener schneidet diese 7 Zeichen später wieder ab.

[code lang=“java“]StringBuffer sb = new StringBuffer(„„);

for(String s: list) {
if(sb.length() > 12) sb.append(„, „);
sb.append(„„);
sb.append(s);
sb.append(„
„);
}

sb.append(„„);

jEditorPane.setText(sb.toString());[/code]

Schöne Icons

Screenshot Nuvola Eine Anwendung wird vom Benutzer nur akzeptiert, wenn sie sich a) in das eingesetzte Betriebssystem nahtlos integriert und b) die verwendeten Grafiken, dem eigene Geschmack entsprechen.

So steht beispielsweise mit Nuvola von David Vignoni eine umfangreiche Sammlung von Icons in verschiedenen Größen zur Verfügung. Diese sind unter der LGPL lizensiert und können damit beliebig verwendet werden.

Bilder und Icons

http://www.openclipart.org, http://www.famfamfam.com, http://tango.freedesktop.org, http://www.drweb.de (1), http://www.drweb.de (2), http://www.drweb.de (3), http://www.kde-look.org, http://www.gnome-look.org

Schriften

http://misprintedtype.com, http://pixelfonts.style-force.net/, http://www.josbuivenga.demon.nl/tallys.html

Sounds

http://87.233.139.100/~midistern/sound.htm

Sonstiges

http://www.flashkit.com,
http://www.oswd.org/