【问题标题】:Disable the select glow for JButtons禁用 JButton 的选择发光
【发布时间】:2013-04-30 12:57:14
【问题描述】:

我想知道如何禁用当您将鼠标光标悬停在 JButton 上时出现的发光效果。

【问题讨论】:

  • 什么“发光”?你用的是什么PLAF?可以提供截图吗?最重要的是,如果它是典型 PLAF 的一部分,为什么要搞砸呢?

标签: java swing button jbutton


【解决方案1】:

我想你正在寻找:

button.setRolloverEnabled(false);

【讨论】:

    【解决方案2】:

    我想知道如何禁用出现的发光效果 当您将鼠标光标悬停在 JButton 上时。

    JButton.setFocusable(false);
    

    编辑

    MysticKiller 98 wrote that doesn't work, 
    

    那么发光效果等于JButton.setBorderPainted(false);

    import java.awt.Insets;
    import javax.swing.Icon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    
    public class MyButtonWithIcon extends JFrame {
    
        private static final long serialVersionUID = 1L;
        private Icon errorIcon = UIManager.getIcon("OptionPane.errorIcon");
        private Icon infoIcon = UIManager.getIcon("OptionPane.informationIcon");
        private Icon warnIcon = UIManager.getIcon("OptionPane.warningIcon");
    
        public MyButtonWithIcon() {
            final JButton toggleButton = new JButton();
            toggleButton.setBorderPainted(false);
            //toggleButton.setBorder(null);
            //toggleButton.setFocusable(false);
            //toggleButton.setMargin(new Insets(0, 0, 0, 0));
            //toggleButton.setContentAreaFilled(false);
            toggleButton.setIcon((errorIcon));
            toggleButton.setSelectedIcon(infoIcon);
            toggleButton.setRolloverIcon((infoIcon));
            toggleButton.setPressedIcon(warnIcon);
            toggleButton.setDisabledIcon(warnIcon);
            add(toggleButton);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            pack();
            setVisible(true);
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    MyButtonWithIcon t = new MyButtonWithIcon();
                }
            });
        }
    }
    

    【讨论】:

    • then glow effect equals JButton.setBorderPainted(false); - 完全移除边框。
    • @camickr 的答案是正确的方法。它只会删除翻转效果而不是边框​​(setBorderPainted())。
    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 2018-10-22
    • 1970-01-01
    相关资源
    最近更新 更多