Package com.jgoodies.common.swing
Class MnemonicUtils
- java.lang.Object
-
- com.jgoodies.common.swing.MnemonicUtils
-
public final class MnemonicUtils extends java.lang.Object
Configures the text, mnemonic and mnemonic index in Actions, JLabels, and AbstractButtons. The term marked text is used for Strings that contain a marker character that marks both the mnemonic and its index in the resulting plain text.To set a mnemonic, add an ampersand ('&') before the character that should be the mnemonic, for example "&Save". If your text has multiple ampersands, only the first one is used to mark the mnemonic; the other ampersands appear as normal text. For example "&Look&Feel" has the first 'L' has mnemonic. If you want to use the ampersand itself in the text, use two consecutive ampersands for any ampersand that precede the one that is used to mark the mnemonic. For example the marked text "R&&D D&epartment" has "R&D Department" as text and the mnemonic is 'E'.
Examples:
Marked Text Plain Text Mnemonic Mnemonic Index Comment Save Save 0 -1 No mnemonic &Save Save 'S' 0 Save &as Save as 'A' 5 Second 'a' marked Look&Feel LookFeel 'F' 4 & should be quoted Look&&Feel Look&Feel 0 -1 & is quoted &Look&Feel Look&Feel L 0 Second & needs no quote Look & Feel Look & Feel 0 -1 Whitespace cannot be marked R&&D D&epartment R&D Department 'E' 5 First & is quoted <html>a&b</html> <html>a<u>b</u></html> 'B' -1 'b' is underlined <html>R&D D&ep.</html> <html>R&D D<u>e</u>p.</html> 'B' -1 HTML & doesn't mark
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
MnemonicUtils.MnemonicText
-
Field Summary
Fields Modifier and Type Field Description (package private) static char
MNEMONIC_MARKER
The single mnemonic marker.
-
Constructor Summary
Constructors Modifier Constructor Description private
MnemonicUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
configure(javax.swing.AbstractButton target, java.lang.String markedText)
Configures the text, mnemonic and mnemonic index fortarget
using the given text that can be marked with the mnemonic marker '&'.static void
configure(javax.swing.Action target, java.lang.String markedText)
Configures the text, mnemonic and mnemonic index fortarget
using the given text that can be marked with the mnemonic marker '&'.static void
configure(javax.swing.JLabel target, java.lang.String markedText)
Configures the text, mnemonic and mnemonic index fortarget
using the given text that can be marked with the mnemonic marker '&'.private static void
configure0(javax.swing.AbstractButton button, MnemonicUtils.MnemonicText mnemonicText)
private static void
configure0(javax.swing.Action action, MnemonicUtils.MnemonicText mnemonicText)
private static void
configure0(javax.swing.JLabel label, MnemonicUtils.MnemonicText mnemonicText)
(package private) static int
mnemonic(java.lang.String markedText)
Extracts and returns the mnemonic from the given marked text.(package private) static int
mnemonicIndex(java.lang.String markedText)
Finds and returns the index of the mnemonic in the marked text.static java.lang.String
plainText(java.lang.String markedText)
Returns the plain text for the given marked text by removing the mnemonic marker and marker quotes - if any.
-
-
-
Field Detail
-
MNEMONIC_MARKER
static final char MNEMONIC_MARKER
The single mnemonic marker. Future versions of this class shall support other markers, for example the underline char ('_').- See Also:
- Constant Field Values
-
-
Method Detail
-
configure
public static void configure(javax.swing.AbstractButton target, java.lang.String markedText)
Configures the text, mnemonic and mnemonic index fortarget
using the given text that can be marked with the mnemonic marker '&'. For example ifmarkedText
is "Save &as", the text will be set to "Save as", the mnemonic is 'a', and the mnemonic index is 5.- Parameters:
target
- the button to be configuredmarkedText
- the text with optional mnemonic marker- Throws:
java.lang.NullPointerException
- iftarget
isnull
-
configure
public static void configure(javax.swing.Action target, java.lang.String markedText)
Configures the text, mnemonic and mnemonic index fortarget
using the given text that can be marked with the mnemonic marker '&'. For example ifmarkedText
is "Save &as", the text will be set to "Save as", the mnemonic is 'a', and the mnemonic index is 5.- Parameters:
target
- the Action to be configuredmarkedText
- the text with optional mnemonic marker- Throws:
java.lang.NullPointerException
- iftarget
isnull
-
configure
public static void configure(javax.swing.JLabel target, java.lang.String markedText)
Configures the text, mnemonic and mnemonic index fortarget
using the given text that can be marked with the mnemonic marker '&'. For example ifmarkedText
is "Save &as", the text will be set to "Save as", the mnemonic is 'a', and the mnemonic index is 5.- Parameters:
target
- the label to be configuredmarkedText
- the text with optional mnemonic marker- Throws:
java.lang.NullPointerException
- iftarget
isnull
-
plainText
public static java.lang.String plainText(java.lang.String markedText)
Returns the plain text for the given marked text by removing the mnemonic marker and marker quotes - if any. If the marked text is HTML, the plain text has the mnemonic character underlined. See theMnemonicUtils
class comment for information about how to mark a mnemonic and how to quote a marker.MnemonicUtils.plainText("Save") == "Save" MnemonicUtils.plainText("&Save") == "Save" MnemonicUtils.plainText("&Look&Feel") == "Look&Feel" MnemonicUtils.plainText("Look & Feel") == "Look & Feel" MnemonicUtils.plainText("R&&D D&epartment") == "R&D Department" MnemonicUtils.plainText("<html>a&b</html>") == "<html>a<u>b</u></html>"
- Parameters:
markedText
- the text that may contain a mnemonic marker- Returns:
- the text without mnemonic marker and marker quotes
-
mnemonic
static int mnemonic(java.lang.String markedText)
Extracts and returns the mnemonic from the given marked text.- Parameters:
markedText
- the text with optional mnemonic marker- Returns:
- the mnemonic or
0
if no mnemonic is marked
-
mnemonicIndex
static int mnemonicIndex(java.lang.String markedText)
Finds and returns the index of the mnemonic in the marked text.- Parameters:
markedText
- the text with optional mnemonic marker- Returns:
- the mnemonic index or
-1
if there's no mnemonic or the text is HTML
-
configure0
private static void configure0(javax.swing.AbstractButton button, MnemonicUtils.MnemonicText mnemonicText)
-
configure0
private static void configure0(javax.swing.Action action, MnemonicUtils.MnemonicText mnemonicText)
-
configure0
private static void configure0(javax.swing.JLabel label, MnemonicUtils.MnemonicText mnemonicText)
-
-