Manipulation des 'Swing Look And Feels'

Folgend eine Auflistung von Konstanten, die für Änderungen am Look & Feel zuständig sind. Diese Informationen liegen in der Swing API nicht gerade offen herum. Deswegen habe ich sie hier einmal aufgeschrieben.

UIManager.put("TextField.inactiveForeground", Color.black);
UIManager.put("ComboBox.disabledForeground", Color.black);
UIManager.put("Label.disabledForeground", Color.black); 
UIManager.put("CheckBox.foreground", Color.black);
UIManager.put("Checkbox.select", Color.black);
UIManager.put("TextArea.inactiveForeground", Color.black);

ScrollPane

Per Default neigt die ScrollPane zu einer gewissen Langsamkeit. Um ihr auf die Sprünge zu helfen reicht i.d.R.

scrollPane.getViewport().setScrollMode(JViewport.BLIT_SCROLL_MODE);

oder das Erhöhen des Unit-Inkrements

contentPanel.getVerticalScrollBar().setUnitIncrement(10);

Unerwartete Ausnahmen

Swing Anwendungen, wenn sie denn 'richtig' implementiert sind, verwenden in der Regel mehr als einen Thread. Java bietet die Möglichkeit, allen Threads einen sogenannten UncaughtExceptionHandler mitzugeben. Damit hätte die Anwendung eine zentrale Anlaufstelle für Exceptions.

private void handleUncaughtExceptions() {
    Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
        public void uncaughtException(Thread t, Throwable e) {
            e.printStackTrace();
            showErrorDialog(e);
        }   
    });
}

Zusätzlich kann man (oder muss man vielleicht sogar) die Eigenschaft

System.setProperty("sun.awt.exception.handler", "com.ab.abcde.ExceptionHandler");

setzen. Die Klasse ExceptionHandler muss nur eine Methode definieren:

public void handle(Throwable e)