Class SwingUtils

java.lang.Object
de.stefanreiser.swing.SwingUtils

public class SwingUtils
extends java.lang.Object
Diverse nützliche Dinge für Swing-Dialoge.
  • Einige nützliche statische Methoden,
  • Konstanten, wie z.B. vorgefertigte FileFilter für JFileChooser.
Author:
reiser
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static javax.swing.filechooser.FileFilter CSV_FILE_FILTER
    Vorgefertigte FileFilter für häufig benötigte Dateinamenerweiterungen.
    static int DEFAULT_MAX_HEIGHT
    Konstante für createMessagePane(...)
    static int DEFAULT_MAX_WIDTH
    Konstante für createMessagePane(...)
    static javax.swing.filechooser.FileFilter TEXT_FILE_FILTER
    Vorgefertigte FileFilter für häufig benötigte Dateinamenerweiterungen.
  • Method Summary

    Modifier and Type Method Description
    static javax.swing.filechooser.FileFilter createFileExtensionFilter​(java.lang.String extension, java.lang.String description)
    Liefert einen FileFilter, der Dateien mit der angegebenen Erweiterung akzeptiert.
    static javax.swing.JScrollPane createMessagePane​(java.lang.String text)  
    static javax.swing.JScrollPane createMessagePane​(java.lang.String text, int maxWidth, int maxHeight)
    Erzeugt eine JScrollPane mit einer JTextPane, die den angegebenen Text automatisch an Wortgrenzen umbricht.
    static void printStackTrace​(java.lang.String title, java.lang.Throwable throwable)
    In etwa wie Exeptions.printStackTrace(ex) von Netbeans.
    static int showYesNoDialogDefaultNo​(java.awt.Component parent, java.lang.Object message, java.lang.String title)
    Sicherer Ersatz für JOptionPane.showConfirmDialog() für kritische Situationen: Zeigt Bestätigungsdialog, bei dem "Nein" voreingestellt ist.
    static int showYesNoDialogDefaultNo​(java.lang.Object message, java.lang.String title)
    Sicherer Ersatz für JOptionPane.showConfirmDialog() für kritische Situationen: Zeigt Bestätigungsdialog, bei dem "Nein" voreingestellt ist.
    static void useTabForFocusTraversel​(javax.swing.JTextArea jTextArea)
    TAB-Events in Textarea sollen zu Focuswechsel führen!
    static void useTabForFocusTraversel​(javax.swing.JTextPane jTextPane)
    TAB-Events in TextPane sollen zu Focuswechsel führen!
    static void waitWhileRunning​(boolean cancelButtonVisible, CancelableRunnable task, java.lang.Runnable runOnEdtAfterwards, java.lang.String title, java.lang.Object message, boolean isModal, java.awt.Component parent, boolean confirmBeforeCancel, boolean autoCloseWhenDone)
    Displays a dialog with an indeterminated ProgressBar.
    static void waitWhileRunning​(CancelableRunnable task, java.lang.Runnable runOnEdtAfterwards, java.lang.String title, java.lang.Object message, boolean cancelButtonVisible, java.awt.Component parent)
    Displays a modal dialog with an indeterminated ProgressBar.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • TEXT_FILE_FILTER

      public static final javax.swing.filechooser.FileFilter TEXT_FILE_FILTER
      Vorgefertigte FileFilter für häufig benötigte Dateinamenerweiterungen. (Bei Bedarf ergänzen...)
    • CSV_FILE_FILTER

      public static final javax.swing.filechooser.FileFilter CSV_FILE_FILTER
      Vorgefertigte FileFilter für häufig benötigte Dateinamenerweiterungen. (Bei Bedarf ergänzen...)
    • DEFAULT_MAX_WIDTH

      public static final int DEFAULT_MAX_WIDTH
      Konstante für createMessagePane(...)
      See Also:
      Constant Field Values
    • DEFAULT_MAX_HEIGHT

      public static final int DEFAULT_MAX_HEIGHT
      Konstante für createMessagePane(...)
      See Also:
      Constant Field Values
  • Method Details

    • createFileExtensionFilter

      public static javax.swing.filechooser.FileFilter createFileExtensionFilter​(java.lang.String extension, java.lang.String description)
      Liefert einen FileFilter, der Dateien mit der angegebenen Erweiterung akzeptiert. (Akzeptiert außerdem Verzeichnisse, damit im JFileChooser in diese gewechselt werden kann.)

      Anmerkung: Ab JDK 1.6 gibt es die Klasse FileNameExtensionFilter im Package javax.swing.filechooser, die ähnliches leistet.

      Parameters:
      extension - Dateinamenerweiterung (inkl. Punkt), z.B. ".txt"
      description - Beschreibung des Dateityps
      Returns:
    • createMessagePane

      public static javax.swing.JScrollPane createMessagePane​(java.lang.String text, int maxWidth, int maxHeight)
      Erzeugt eine JScrollPane mit einer JTextPane, die den angegebenen Text automatisch an Wortgrenzen umbricht. Die JScrollPane hat keine Scrollbalken solange die maximale Höhe nicht überschritten wird.

      Ziel ist: Eine vorgegebene maximale Höhe nicht zu überschreiten, aber, falls der Text kleiner ist, eine geringere Höhe zu wählen, so dass keine Scrollbar benötigt wird. Wenn bei sehr langen Zeilen ohne Leerzeichen (z.B. Exception-Meldungen) kein Wrapping möglich ist, wird eine horizontale Scrollbar eingeblendet.

      Anmerkungen: Mit dem einfacheren JTextArea funktionierte die Bestimmung der Höhe nicht richtig. Dagegen kann JEditorPane kein Wrapping an Wortgrenzen (stattdessen werden Wörter einfach mittendrin umgebrochen). Das jetzt hier verwendete JTextPane löst beide Probleme.

      Parameters:
      text -
      maxWidth -
      maxHeight -
      Returns:
    • createMessagePane

      public static javax.swing.JScrollPane createMessagePane​(java.lang.String text)
      Parameters:
      text -
      Returns:
    • waitWhileRunning

      public static void waitWhileRunning​(CancelableRunnable task, java.lang.Runnable runOnEdtAfterwards, java.lang.String title, java.lang.Object message, boolean cancelButtonVisible, java.awt.Component parent)
      Displays a modal dialog with an indeterminated ProgressBar. Closes dialog when task is done.

      Calls waitWhileRunning(...) with isModal == true, confirmBeforeCancel == false and autoCloseWhenDone == true.

      Parameters:
      task -
      runOnEdtAfterwards -
      title -
      message -
      cancelButtonVisible -
      parent -
      See Also:
      waitWhileRunning(boolean, CancelableRunnable, Runnable, String, Object, boolean, Component, boolean, boolean)
    • waitWhileRunning

      public static void waitWhileRunning​(boolean cancelButtonVisible, CancelableRunnable task, java.lang.Runnable runOnEdtAfterwards, java.lang.String title, java.lang.Object message, boolean isModal, java.awt.Component parent, boolean confirmBeforeCancel, boolean autoCloseWhenDone)
      Displays a dialog with an indeterminated ProgressBar. Closes dialog when task is done. Returns immediately - displaying of the dialog is enqueued at the end of the EDT's EventQueue, then the task is started.
      Parameters:
      task - - Long running task, runs in its own thread.
      runOnEdtAfterwards - - Runs on the EDT after task is completed, can be null. (There is no check whether the task was successful or not: runOnEdtAfterwards is run in any case. Anything that depends on the successful execution should be done in the task itself, for example by using EventQueue.invokeLater().)
      title - - dialog's title, can be null.
      message - - message to display, can be null. If type of message is a JComponent it is displayed in the dialog. If message is any other object it is converted to a String by calling its toString method. The result is wrapped in a JLabel and displayed. (See JOptionPane.)
      cancelButtonVisible - - whether to display a cancel button.
      isModal - - whether the dialg is modal.
      parent - - dialog's location is set relative to parent, can be null.
      confirmBeforeCancel - Display question message before canceling.
      autoCloseWhenDone - True: Dialog closes when task is done. False: Dialog stays visible close button is pressed.
    • printStackTrace

      public static void printStackTrace​(java.lang.String title, java.lang.Throwable throwable)
      In etwa wie Exeptions.printStackTrace(ex) von Netbeans. Verwendet eigenen Dialog, weil die Netbeans-Klassen nur in den NB-Platform-Applications zur Verfügung stehen. (Aufruf auf dem EDT!)
      Parameters:
      title -
      throwable -
    • showYesNoDialogDefaultNo

      public static int showYesNoDialogDefaultNo​(java.lang.Object message, java.lang.String title)
      Sicherer Ersatz für JOptionPane.showConfirmDialog() für kritische Situationen: Zeigt Bestätigungsdialog, bei dem "Nein" voreingestellt ist.
      Parameters:
      message - Die anzuzeigende Nachricht (kann außer einem String z.B. auch eine allgemeine JComponent sein).
      title - Titel des Dialogfensters.
      Returns:
      Genau dann JOptionPane.YES_OPTION, wenn "Ja" ausgewählt wurde.
    • showYesNoDialogDefaultNo

      public static int showYesNoDialogDefaultNo​(java.awt.Component parent, java.lang.Object message, java.lang.String title)
      Sicherer Ersatz für JOptionPane.showConfirmDialog() für kritische Situationen: Zeigt Bestätigungsdialog, bei dem "Nein" voreingestellt ist.
      Parameters:
      parent - Parent-Komponente. Darf null sein.
      message - Die anzuzeigende Nachricht (kann außer einem String z.B. auch eine allgemeine JComponent sein).
      title - Titel des Dialogfensters.
      Returns:
      Genau dann JOptionPane.YES_OPTION, wenn "Ja" ausgewählt wurde.
    • useTabForFocusTraversel

      public static void useTabForFocusTraversel​(javax.swing.JTextArea jTextArea)
      TAB-Events in Textarea sollen zu Focuswechsel führen! Richtet eine JTextArea so ein, dass TAB als Steuerzeichen zum Fokuswechsel interpretiert wird. Tab-Zeichen können damit nicht mehr im Text eingegeben werden.
      Parameters:
      jTextArea -
    • useTabForFocusTraversel

      public static void useTabForFocusTraversel​(javax.swing.JTextPane jTextPane)
      TAB-Events in TextPane sollen zu Focuswechsel führen! Richtet eine JTextPane so ein, dass TAB als Steuerzeichen zum Fokuswechsel interpretiert wird. Tab-Zeichen können damit nicht mehr im Text eingegeben werden.
      Parameters:
      jTextPane -