Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[SWING] Actions und Mnemonics...

0 views
Skip to first unread message

Jens Greven

unread,
Jan 2, 2003, 8:06:30 AM1/2/03
to
Hallo!

ich habe in einem Programm Actions verwendet, um Steuerung von Aktionen
zu kapseln. Das funktioniert auch wunderbar, d. h. ich kann die Actions
in ein Menü basteln, oder in eine Toolbar tackern. Allerdings nur, wenn
ich mit

putValue(Action.NAME, "Beenden");

nur Action.NAME und Action.SHORT_DESCRIPTION setze. Sobald ich mit

putValue(Action.MNEMONIC_KEY, "B");

versuche, dem Menü ein Mnemonic zuzuweisen, bekomme ich die folgende
Exception:

java.lang.ClassCastException
at
javax.swing.AbstractButton.configurePropertiesFromAction(AbstractButton.java:1087)
at
javax.swing.AbstractButton.configurePropertiesFromAction(AbstractButton.java:1033)
at javax.swing.JMenuItem.configurePropertiesFromAction(JMenuItem.java:354)
at javax.swing.AbstractButton.setAction(AbstractButton.java:967)
at javax.swing.JMenu.add(JMenu.java:635)
at
org.greven.stundenliste.SundenlisteMenuBar.<init>(SundenlisteMenuBar.java:30)
at org.greven.stundenliste.Stundenliste.<init>(Stundenliste.java:80)
at org.greven.stundenliste.Stundenliste.main(Stundenliste.java:48)
Exception in thread "main"

Hat jemand von Euch hiermit schon Erfahrungen gesammelt, und sieht
vielleicht was ich hier falsch mache?

Für Hilfe dankbar,
Jens


--
---------------------------------
Read the FAQ, Luke!
Visit me at: www.greven.org
Mail me at: je...@greven.org

Peter Votruba

unread,
Jan 2, 2003, 8:23:49 AM1/2/03
to

Ich hab grad keine Zeit zum Nachschauen, deswegen rat ich einfach mal:

javax.swing.AbstractButton.configurePropertiesFromAction erwartet den
Wert für Action.MNEMONIC_KEY nicht als String! Versuchs mal mit Integer,
also IMHO new Integer('B') oder noch besser die Konstanten in IMHO
KeyEvent!?!

bitte,
Peter

Oliver Wieland

unread,
Jan 2, 2003, 10:03:41 AM1/2/03
to
Hallo,

anbei ein paar Codezeilen, die vielleicht weiterhelfen. Diese stammen aus
einer Klasse, welche von AbstractAction erbt

-------------------------
/**
* Covenience method to simplify the less intuitive setting in Swing :-)
*/
public void setMnemonic(int keyChar, int pModifier) {
Integer code = new Integer(KeyStroke.getKeyStroke(
keyChar, pModifier).getKeyCode());
putValue(MNEMONIC_KEY, code);
}

public Integer getMnemonic() {
return (Integer)getValue(MNEMONIC_KEY);
}

/**
* Convenience method to simplify the less intuitive setting in Swing :-)
*/
public void setAccelerator(int keyChar) {
setAccelerator(keyChar, 0);
}

/**
* Convenience method to simplify the less intuitive setting in Swing :-)
*/
public void setAccelerator(int keyChar, int pModifier) {
accel = KeyStroke.getKeyStroke(keyChar, pModifier);
Integer code = new Integer(accel.getKeyCode());
if (Util.ISJDK_14) { // JDK 1.4 expects KeyStroke
putValue(ACCELERATOR_KEY, accel);
} else {
putValue(ACCELERATOR_KEY, code);
}
}

--------------

Gruß
Olli
"Jens Greven" <je...@greven.org> schrieb im Newsbeitrag
news:av1dgg$b435o$1...@ID-132381.news.dfncis.de...

Jens Greven

unread,
Jan 3, 2003, 9:42:44 AM1/3/03
to
Peter Votruba wrote:
> Ich hab grad keine Zeit zum Nachschauen, deswegen rat ich einfach mal:
>
> javax.swing.AbstractButton.configurePropertiesFromAction erwartet den
> Wert für Action.MNEMONIC_KEY nicht als String! Versuchs mal mit Integer,

Genau das war's!

> also IMHO new Integer('B') oder noch besser die Konstanten in IMHO
> KeyEvent!?!
>
> bitte,
> Peter

Danke,

0 new messages