【问题标题】:JButton with HTML named action and a mnemonic带有 HTML 命名动作和助记符的 JButton
【发布时间】:2011-01-08 07:19:10
【问题描述】:

我有一个JButton,它是使用一个动作构造的,这个动作的名称包含 html。

然后我通过首先解析 html 以获取名称中的第一个字符来设置 JButton 上的助记符。

例如JButton名称可能是"<html>Test<br>Button</html>",所以解析html后助记键应该是“T”。

所以现在当 JButton 被渲染时,我可以按下 alt-T 来激活按钮,但是 T 上的下划线助记符不存在。

有没有人知道实现这种情况的方法?

【问题讨论】:

    标签: java html swing action mnemonics


    【解决方案1】:

    我不清楚“通过解析 html 在 JButton 上设置助记符”是什么意思。通过调用 JButton 类中的方法 setMnemonic 可以在 JButton 上设置助记符。我尝试了下面的一段代码,当我按下Alt+P 时,我在控制台中收到了I am pressed 消息。

    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");
        }
    }
    

    另请参阅 Java 教程中的 How to Use HTML in Swing Components 部分。

    【讨论】:

    • 对不起,我想我应该更清楚。我有一个框架用于显示在我的应用程序中有按钮的错误消息,所以对于相同的可重用代码,我所做的是解析 html(在你的情况下为“Press") 以便找到应设置助记符的字符(在本例中为 P)。
    • 如果 JButton 名称中没有 html,并且您设置了助记符,那么它会自行在 P 下划线。但是在这种情况下,您似乎必须添加 html 格式才能自己执行此操作。有没有办法让 JButton 自己做下划线,而不是把它放在 html 中。因为我的错误框架中可能有两个按钮,“Press
      Me”和“Push
      Me”。在这种情况下,其中一个将为其设置不同的助记符,我不希望将下划线与 html 结合起来。
    • 我没有得到你的问题。代码“jButton.setMnemonic('P');”已经在 P 中设置了下划线。在这种情况下,html 是不必要的。
    • 我发现如果我有: b1 = new JButton("Press
      Button"); b1.setMnemonic(KeyEvent.VK_P); P 不会有下划线。
    猜你喜欢
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多