これはMetalButtonUI
クラスのupdate()
方法によって処理されるように表示されます。ここでJDK5_07からのコードは次のとおりです。
public void update(Graphics g, JComponent c) {
AbstractButton button = (AbstractButton)c;
if ((c.getBackground() instanceof UIResource) &&
button.isContentAreaFilled() && c.isEnabled()) {
ButtonModel model = button.getModel();
if (!MetalUtils.isToolBarButton(c)) {
if (!model.isArmed() && !model.isPressed() &&
MetalUtils.drawGradient(
c, g, "Button.gradient", 0, 0, c.getWidth(),
c.getHeight(), true)) {
paint(g, c);
return;
}
}
else if (model.isRollover() && MetalUtils.drawGradient(
c, g, "Button.gradient", 0, 0, c.getWidth(),
c.getHeight(), true)) {
paint(g, c);
return;
}
}
super.update(g, c);
}
親コンテナがJToolBarのであればisToolBarButton()
方法はちょうどチェックし、私は一つの解決策は、常にJToolBarのにあなたのJButtonを追加し、あなたの本当のコンテナにツールバーを追加することであると思います。
それ以外の場合は、独自のカスタムUIを作成してupdate()メソッドをオーバーライドする必要があります。
すてきなコード、ありがとう、+1 – mKorbel
Ok thx!それはまさに私が必要なものです! JToolBarにmyJButtonを追加しようとします。 – paranoia25