gpt4 book ai didi

java - JComboBox 在设置自定义 UI 后丢失键盘事件

转载 作者:行者123 更新时间:2023-11-29 06:08:25 26 4
gpt4 key购买 nike

我有以下问题:

我需要为 JComboBoxComponent 设置自定义 UI(以修改颜色、箭头按钮等)。目前,我正在构造函数中执行此操作,如下所示:

public MyComboBox() {
setUI(new MyComboBoxUI);
}

问题是,在以这种方式设置 UI 之后,我以某种方式丢失了组合框弹出列表中的所有 InputMapActionMap 内容,即它不会向上滚动列表或使用箭头键向下。

我在这里做错了什么?

代码如下:

public class CurrencyPairComboBox extends JComboBox { 

public CurrencyPairComboBox() {
setUI(new CurrencyPairComboBoxUI());
}
}

class CurrencyPairComboBoxUI extends BasicComboBoxUI {

@Override
public void installUI(JComponent c) {
super.installUI(c);

listBox.setSelectionBackground(Color.BLACK);
listBox.setSelectionForeground(Color.WHITE);
}

@Override
protected JButton createArrowButton() {
arrowButton = new JButton();
arrowButton.setIcon(OrderWidgetUIConstants.DROPDOWN_ARROW_ICON);
arrowButton.setRolloverIcon(OrderWidgetUIConstants.DROPDOWN_ARROW_HOVER_ICON);
return arrowButton;
}
}

最佳答案

我试过你在这里发布的代码,我没有看到任何键盘问题,一切都按我的预期工作

enter image description here enter image description here

import java.awt.*;
import javax.swing.*;

class ComboBoxTest extends JFrame {

private static final long serialVersionUID = 1L;
private JComboBox comboBox;
private ImageIcon infoIcon = (ImageIcon) UIManager.getIcon("OptionPane.informationIcon");
private ImageIcon warnIcon = (ImageIcon) UIManager.getIcon("OptionPane.warningIcon");

ComboBoxTest() {
String[] items = {"Item1", "Item2"};
comboBox = new JComboBox(items);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(comboBox);
comboBox.setUI(new MyUI());
}

public JFrame getCurrentInstance() {
return this;
}

public static void main(String[] args) {
ComboBoxTest frame = new ComboBoxTest();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}

class MyUI extends javax.swing.plaf.basic.BasicComboBoxUI {

@Override
protected JButton createArrowButton() {
JButton btn = new JButton();
btn.setIcon(infoIcon);
btn.setRolloverIcon(warnIcon);
return btn;
}
}
}

关于java - JComboBox 在设置自定义 UI 后丢失键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7821086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com