如何移除JToolBar上JButton的聚焦边框与悬停点击外框(Corretto Java 11)
解决方案
你遇到的配置失效问题核心原因是JToolBar开启setRollover(true)后,会自动接管内部按钮的悬停效果绘制,优先级高于按钮自身的属性配置,同时JButton默认的内容区域绘制逻辑也会生成你看到的浅外框。按以下步骤修改即可满足全部需求:
- 关闭JToolBar的自动悬停效果,将原有代码
toolbar.setRollover(true);改为toolbar.setRollover(false); - 给JButton补充以下核心配置,注意不要被后续代码覆盖:
// 新增配置 b2.setBorderPainted(false); // 禁用边框绘制 b2.setContentAreaFilled(false); // 禁用默认按钮内容区域(含默认背景、悬停外框)绘制 // 原有有效配置保留 b2.setFocusPainted(false); b2.setFocusable(false);
- 删除你原有代码中后续重复的边框设置
b2.setBorder(BorderFactory.createEmptyBorder(0,0,0,0));,避免覆盖前面的禁用配置。
修改后即可实现:默认状态无自带边框、鼠标悬停无聚焦外框、点击时无任何边框效果,自定义的Icon绘制不受影响。
内容的提问来源于stack exchange,提问作者Unhandled Exception
相关产品推荐
相关产品推荐

