0

私は何日も答えを探し、LookAndFeelsと不透明な問題についてたくさん読みましたが、解決策を見つけることができませんでした。NimbusLookAndFeelを使用して、SwingでJavaアプリケーションを開発しています。全体的な外観には満足していますが、それでもビューを変更したいと思います。どういうわけか、無効になっているJComboboxの背景色を設定できないため(combobox.setEnabled(false);)、行き詰まりました。

私はすでにUIManager.put(..)+他の多くのものを使って何億もの異なるプロパティのように試しました。

別のL&Fを使用すると、次のように機能します。

combobox.setRenderer(new DefaultListCellRenderer() {
            @Override
            public void paint(Graphics g) {
                setBackground(Color.WHITE);
                setForeground(Color.BLACK);
                super.paint(g);
            }               
});

ニンバスでこれを行う方法の提案はありますか?

4

1 に答える 1

0

私はニンバスのデフォルトをたくさんいじりました。ほとんどのコンポーネントを変更しても問題はありませんでしたが、無効になっているコンポーネントの背景を変更することはできませんでした。

私はこのようなカスタムListCellRendererを書くことになりました

public class DisabledListCellRenderer extends DefaultListCellRenderer {
    private static final long serialVersionUID = 1L;
    private JComponent component;

    public DisabledListCellRenderer(JComponent component) {
        this.component = component;
    }

    @Override
    protected void paintComponent(Graphics g) {
        g.setColor(SwingHelper.disabledBackgroundColor);
        g.fillRect(0, 0, component.getSize().width, component.getSize().height);
        super.paintComponent(g);
    }
}

それは最終的にはうまくいきましたが、これが良い解決策かどうかはわかりませんが

于 2013-01-23T16:20:17.340 に答える