JComboBoxの標準の矢印ボタンが私のGUIにうまく収まらなかったので、私はそれを好まなかった。だから私はそれを変更しました。これを行うには、私はBasicComboUI
を拡張しているクラスを書きました。通常の場合、すべては私がそれを期待しているようです。しかし、ボタンを無効にするとすぐに、そのままボタンが灰色の背景色を持たないようになります。代わりに、リストの左の部分が行います。そこで、矢印ボタンの無効化動作を定義したり修正したりする方法があるかどうかを知りたいと思います。ここで無効にした場合のJComboBox BasicArrowButtonの色の定義/設定
は私の現在のコードです:私は何ができるか
public class CustomArrowUI extends BasicComboBoxUI{
private static Color buttonBackground;
private static Color borderBox;
private static Color arrowColor;
private static Color buttonBorder;
public static ComboBoxUI createUI(JComponent c, Color buttonBackground, Color borderBox, Color arrowColor, Color buttonBorder)
{
CustomArrowUI.buttonBackground = buttonBackground;
CustomArrowUI.borderBox = borderBox;
CustomArrowUI.arrowColor = arrowColor;
CustomArrowUI.buttonBorder = buttonBorder;
return new CustomArrowUI();
}
@Override
protected JButton createArrowButton()
{
JButton button = new BasicArrowButton(BasicArrowButton.SOUTH, buttonBackground, borderBox, arrowColor, buttonBorder);
LineBorder border = new LineBorder(buttonBorder, 1);
button.setEnabled(false);
button.setBorder(border);
return button;
}}
デフォルトとして背景光のグレーを設定し、そして私のJComboBoxのを可能にされる前のボタン、ののActionListenerに色を変更しています。しかし、私はちょっとこの解決策が嫌いです。私は直接私の中でそれを行うことを好むでしょうCustomArrowUI