Class SwingUtils
public class SwingUtils
extends java.lang.Object
- 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.
-
Field Details
-
TEXT_FILE_FILTER
public static final javax.swing.filechooser.FileFilter TEXT_FILE_FILTERVorgefertigte FileFilter für häufig benötigte Dateinamenerweiterungen. (Bei Bedarf ergänzen...) -
CSV_FILE_FILTER
public static final javax.swing.filechooser.FileFilter CSV_FILE_FILTERVorgefertigte FileFilter für häufig benötigte Dateinamenerweiterungen. (Bei Bedarf ergänzen...) -
DEFAULT_MAX_WIDTH
public static final int DEFAULT_MAX_WIDTHKonstante für createMessagePane(...)- See Also:
- Constant Field Values
-
DEFAULT_MAX_HEIGHT
public static final int DEFAULT_MAX_HEIGHTKonstante 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. (SeeJOptionPane
.)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
-
-