java - 从 JComboBox Java Swing 中移除焦点
问题描述
我正在尝试从我的JComboBox
. 初始 ComboBox Initial JComboBox获得焦点后有一条虚线:
单击后
现在,我想消除这个焦点。UIManager
但是我在's 选项(https://gist.github.com/itzg/5938035)中找不到它。我从 2018 年 5 月开始查看这篇文章,但还没有答案。
我尝试了以下方法:
jComboBox.setFocusable(false);
UIManager.put("ComboBox.focus", new Color(0, 0, 0, 0));
但他们都没有工作。
任何帮助将不胜感激!
解决方案
您可以执行以下操作:
comboBox.setUI(new BasicComboBoxUI());
这将在选择一个元素并让您摆脱虚线边框后产生以下结果:
要删除任何“种类”的焦点边框,您需要覆盖ComboBoxUI
用于绘制框及其组件的。
这是我用来实现示例的代码:
public ComboboxWithoutDottedBorder() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception ignored){}
this.setVisible(true);
JLabel label = new JLabel("Label");
JComboBox<String> combo = new JComboBox<>();
this.setLayout(new BorderLayout());
combo.addItem("A");
combo.addItem("B");
combo.addItem("C");
combo.addItem("D");
combo.setUI(new BasicComboBoxUI());
this.add(label, BorderLayout.NORTH);
this.add(combo, BorderLayout.SOUTH);
}
推荐阅读
- postgresql - 如何自动填充数据库表
- sql - Pervasive Database 按语句排序
- google-apps-script - 两个表单同时提交时onform提交脚本出错
- javascript - 如何将 ctx 范围传递给外部函数?
- python - 为什么追加追溯链接两个列表中的值?
- c# - Log4net 总是在 Windows 服务中生成一个新文件作为 WCF 服务
- c++ - “constinit”和“constexpr”之间的真正区别是什么?
- r - 迭代单独数据帧R中的行组
- ios - CoreML MLRecommender 问题
- pandas - 具有权重的 nanmean 以计算 pandas .agg 中的加权平均值