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

我想知道如何从对话中的按钮中删除这个灰色边框? 在此处输入图像描述

对于简单的JButtons,我找到了一个解决方案 – 只需使用button.setFocusPainted(false); 但有没有一种简单的方法可以对所有对话中的所有按钮执行相同的操作? 我试图查看UIManager属性,但似乎没有合适的参数。 在此处输入图像描述

提前致谢!

  • 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))); 
  • 我建议用transparency改变Color (上午代码中的第四个参数)到另一个更好的Color ,否则你不能看到任何一个`JButtons的焦点

关于什么

 JButton.setFocusPainted(false) 

这是一个全局修复,因此您无需为每个控件手动执行此操作。 从我的另一篇文章: 禁用JButton焦点边框

  // 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)));