Swing:从对话框的按钮中移除焦点边框

时间:2012-11-16 18:52:32

标签: java swing border jbutton uimanager

我想知道如何从对话中的按钮中删除此灰色边框? enter image description here

对于简单的JButtons,我找到了一个解决方案 - 只需使用button.setFocusPainted(false); 但有没有一种简单的方法可以对所有对话中的所有按钮执行相同的操作? 我试图通过UIManager属性查看,但似乎没有合适的参数。 enter image description here

提前致谢!

3 个答案:

答案 0 :(得分:7)

    来自JButtons API
  • 您可以使用JButton.setFocusable()JButton.setBorderPainted(false);

  • 来自UIManager
  • 必须覆盖密钥(对整个JVM实例有效)

UIDefaults defaults = UIManager.getLookAndFeelDefaults();
defaults.put("Button.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
  • 我建议将Colortransparency(上午代码中的第4个参数)更改为另一个更合适的Color,否则您无法看到焦点。 Jbutton将

答案 1 :(得分:3)

怎么样?
JButton.setFocusPainted(false)

答案 2 :(得分:1)

这是一个全局修复程序,因此您无需为每个控件手动执行此操作。从我的其他帖子:Disable JButton focus border

        // Removes the dotted border around controls which is not consistent with Windows
        UIManager.put("Button.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
        UIManager.put("ToggleButton.focus", new ColorUIResource(new Color(0, 0, 0, 0)));

        // ways to remove it from other controls...
        UIManager.put("CheckBox.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
        UIManager.put("TabbedPane.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
        UIManager.put("RadioButton.focus", new ColorUIResource(new Color(0, 0, 0, 0)));
        UIManager.put("Slider.focus", new ColorUIResource(new Color(0, 0, 0, 0)));

        // figure out combobox
        UIManager.put("ComboBox.focus", new ColorUIResource(new Color(0, 0, 0, 0)));