Question

I have a JButton that is constructed using an Action and this action has a name that is contains html.

I then go about setting the mnemonic on the JButton by first parsing out html to get the first character in the name.

For example, the JButton name might be "<html>Test<br>Button</html>", so after parsing the html the mnemonic key should be "T".

So now when the JButton is rendered I can push alt-T to activate the button, however the underline mnemonic indicator on the T is not present.

Would anyone know a way to get this to occur?

Was it helpful?

Solution

It is unclear to me what you mean by "setting the mnemomic on the JButton by parsing html". The mnemonic can be set on a JButton by calling the method setMnemonic in the JButton class. I tried below piece of code and when I press Alt+P I get the message I am pressed printed in the console.

public class HTMLButton extends JPanel implements ActionListener {
    JButton     b1;
    public HTMLButton() {
        super(new BorderLayout());
        b1 = new JButton("<html><b><u>P</u>ress</b></html>");
        b1.setMnemonic(KeyEvent.VK_P);
        b1.addActionListener(this);
        add(b1);
    }

    public void actionPerformed(final ActionEvent e) {
        System.out.println("I am pressed");
    }
}

Also see the section How to Use HTML in Swing Components in the Java tutorial.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top