# Mnemonic wird nicht angezeigt



## Bartleby (16. Sep 2008)

Hallo,

ich habe ein kleines Problem. In meiner Anwendung werden die Buchstaben, denen ein Mnemonic zugeordnet ist, standardmäßig nicht unterstrichen dargestellt. Auf einem anderen Rechner funktioniert es merkwürdigerweise aber einwandfrei.
Um dem Problem auf den Grund zu gehen, habe ich ein Mini-Test-Programm geschrieben, welches bei mir ebenfalls den Fehler zeigt, auf dem anderen Rechner aber einwandfrei funktioniert. Allerdings habe ich absolut keine Ahnung, was der Grund dafür ist. Beide Rechner laufen mit Windows XP, getestet mit Java 5 und 6 - immer wieder das gleiche Phänomen.

Mein Test-Programm sieht folgendermaßen aus:


```
package test.button;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;

import com.sun.java.swing.plaf.windows.WindowsLookAndFeel;

public class TestButton extends JPanel {
	
	private static JFrame    frame;
	private static TestButton  testButton;
	private static JPanel panel;
	

	public static void main(String[] args) throws Exception {
		
      frame = new JFrame("Test Button");
      frame.setBounds(20,20,500,300);
      frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
          
      testButton = new TestButton();
      panel = new JPanel(new BorderLayout());
      panel.add(testButton, BorderLayout.CENTER);
      
      frame.setContentPane   (panel);
      frame.setVisible       (true);
	}
	
	private TestButton() throws Exception {
		UIManager.setLookAndFeel(new WindowsLookAndFeel());
//		UIManager.put("Button.showMnemonics", true);
		
		JButton button1 = new JButton("Test");
		button1.setPreferredSize(new Dimension(100,50));
		button1.setMnemonic((int)'e');
		
		add(button1);
	}
}
```

Überschreibe ich den Wert des UIManagers in Zeile 37, werden auch bei mir auf dem Rechner die Buchstaben unterstrichen, ansonsten nicht.

Der Fehler tritt übrigens nur beim WindowsLookAndFeel auf, beim Standard-LookAndFeel funktioniert es auch bei mir.

Hat jemand eine Idee an was das liegen kann? Ich bin ratlos...

Vielen Dank
Bartleby


----------



## thE_29 (16. Sep 2008)

Dir ist schon klar, das die Mnemonics nur dann angezeigt werden wenn du (in Windows) ALT drückst?


----------



## Bartleby (16. Sep 2008)

Hö, seit wann das denn  ???:L 

Auf dem anderen Rechner gehts ja auch ohne Alt. Mit dem Standard-LookAndFeel gehts auch ohne Alt. Und wenn ich Button.showMnemonics auf true setze gehts auch ohne Alt. Das verwirrt mich jetzt etwas...


----------



## thE_29 (17. Sep 2008)

So, gerade getestet!

Das ist Look And Feel abhängig! Also mit dem Default LnF in Java 1.4 zeigt er es an. Bei den anderen nicht mehr.

Setze halt den Eintrag: UIManager.put("Button.showMnemonics", true);  dann wirds immer angezeigt!


----------

