【问题标题】:JComboBox change background colorJComboBox 改变背景颜色
【发布时间】:2021-02-08 02:58:17
【问题描述】:

所以,我创建了彼此靠近的组合框和按钮。 目标是更改组合框的背景并使其与 JButton 中的相同。我为两者应用了相同的颜色,但这就是我得到的。不活动时,下拉列表和向下按钮的颜色是灰色的。

当我单击组合框时,向下按钮的颜色和列表本身的背景会更改为所需的颜色。顶部的固定元件变得更深灰色,但它是钢材,颜色不是预期的。

这是一个绝对标准的组合框。这是我尝试配置的内容。

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

import static handler.Commands.COMMANDS_ARRAY;
import static java.awt.Color.WHITE;

public class MessageComboBox extends JComboBox {

    Dimension messageComboBoxDimension = new Dimension(242, 32);

    public MessageComboBox() {
        setBackground(new Color(71, 81, 93));
        getEditor().getEditorComponent().setBackground(new Color(71, 81, 93));
        ((JTextField) this.getEditor().getEditorComponent()).setOpaque(true);
        setModel(new DefaultComboBoxModel<>(COMMANDS_ARRAY));
        setVisible(true);
        setFocusable(false);
        setPreferredSize(messageComboBoxDimension);
        setRenderer(new DefaultListCellRenderer() {
            @Override
            public void paint(Graphics g) {
                setBackground(new Color(71, 81, 93));
                setForeground(WHITE);
                super.paint(g);
            }
        });
    }
}

关于如何使 JComboBox 下拉按钮和固定下拉元素的背景与 JButton 中的背景相同,即使没有获得焦点,有什么建议吗?由于某种原因,它是灰色的。

这与 LookAndFeel 有关吗? __________________________________________________________________________________

更新: 下一个主题中解决的问题 LookAndFeel blocking JComboBox background change? __________________________________________________________________________________

【问题讨论】:

  • @Moritz Schmidt 当然,但它对我不起作用,原因很奇怪:(
  • 你展示了所有相关的部分吗?
  • @Moritz Schmidt 是的,请检查。我再次添加了带有图片和新代码的新评论。但问题仍然存在。

标签: java swing jcombobox look-and-feel


【解决方案1】:

试试这个

yourCombo.getEditor().getEditorComponent().setBackGround(new Color(71, 81, 93))

为我工作,活跃或不活跃

【讨论】:

    猜你喜欢
    • 2012-05-02
    • 1970-01-01
    • 2012-04-02
    • 2013-07-20
    • 2015-05-23
    • 2018-03-08
    • 2011-05-16
    相关资源
    最近更新 更多