2012-11-16 163 views
3

我想知道如何从对话框中的按钮中删除这个灰色边框? enter image description here摆动:从对话框的按钮中删除焦点边框

对于简单的Jbutton将我找到了解决办法 - 只要使用button.setFocusPainted(false); 但是有执行相同的在所有对话的所有按钮的简单方法? 我试图通过UIManager属性来查看,但似乎没有合适的参数。 enter image description here

在此先感谢!

+0

*“..我怎样才能从按钮对话删除此虚线灰色边框?” *为什么你一心想做另一个无法使用GUI?那些破折号在那里显示焦点。留下他们。 –

+0

@Andrew Thompson嗯,你是对的 - 消除焦点边界影响可用性,但我可以提供两个参数。 1)我在应用程序中只使用一个按钮来使用消息对话框(我的帖子中的第一张图片是从Oracle网站上获取的),所以我认为在这种情况下焦点边界是无用的。 2)我觉得这个边框真的不合适,可能是最好只在整个按钮周围绘制,而不是围绕按钮的文本绘制。 –

回答

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码paramater)到另一个更体面Color,否则你无法看到焦点任何的`Jbutton将
3

JButton.setFocusPainted(false) 
0

这是一个全局修复程序,因此您不必为每个控件手动执行此操作。从我的其他职位: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)));