从 JComboBox Java Swing 中移除焦点
Remove focus from JComboBox Java Swing
我正在尝试从 JComboBox
中删除虚线。
初始 ComboBox Initial JComboBox 在获得焦点后有一条虚线:
After clicked
现在,我想移除那个焦点。但是我在 UIManager
的选项中找不到它(https://gist.github.com/itzg/5938035). I have looked at post 从 2018 年 5 月开始,但答案还没有。
我试过以下方法:
jComboBox.setFocusable(false);
UIManager.put("ComboBox.focus", new Color(0, 0, 0, 0));
但其中 none 有效。
如有任何帮助,我们将不胜感激!
您可以执行以下操作:
comboBox.setUI(new BasicComboBoxUI());
这将在选择元素并去除虚线边框后产生以下结果:
要删除任何 'kind' 焦点边框,您需要覆盖用于绘制框及其组件的 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);
}
我正在尝试从 JComboBox
中删除虚线。
初始 ComboBox Initial JComboBox 在获得焦点后有一条虚线:
After clicked
现在,我想移除那个焦点。但是我在 UIManager
的选项中找不到它(https://gist.github.com/itzg/5938035). I have looked at
我试过以下方法:
jComboBox.setFocusable(false);
UIManager.put("ComboBox.focus", new Color(0, 0, 0, 0));
但其中 none 有效。
如有任何帮助,我们将不胜感激!
您可以执行以下操作:
comboBox.setUI(new BasicComboBoxUI());
这将在选择元素并去除虚线边框后产生以下结果:
要删除任何 'kind' 焦点边框,您需要覆盖用于绘制框及其组件的 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);
}