1

子コンポーネントを a 内に配置しJButton、マウス イベントのサブセットに対して透過的にすることは可能ですか?

  • 子コンポーネントはMouseMotionEvents を受け取ります (表示された画像を変更することで応答できます)
  • JButtonクリックすると、子コンポーネントの「後ろ」が押し下げられます

子コンポーネントをボタンに追加しても他に変更を加えていない場合、子コンポーネントが占める領域をクリックしてもボタンはアクティブになりません。

拡張する新しいクラスを作成することでこれを実現できることはわかってJButtonいますが、既に作成されている子コンポーネントを使用することをお勧めします。

注: これは純粋に見た目上の理由によるものです。子コンポーネントは、それ自体の外観のみを変更します。クリックに応答して他のアクションを実行することはありません。Action通常の方法でボタンによってトリガーされる は1 つだけです。

4

2 に答える 2

1

はい、可能ですが、おそらくマウスオーバーで JButton の外観を変更するより良い方法があります。それを行うために ButtonUI を拡張できます。ただし、コンポーネントを JButton の上にドロップする場合は、他のマウス イベント (クリックなど) を下層の JButton に渡す必要があります。

于 2009-08-15T10:59:17.717 に答える
0

JXLayer はまさにあなたが必要とするものです。https://jxlayer.dev.java.net/を確認してください 。プロジェクト サイトには、さまざまなユース ケースでの JXLayer の使用法に関する優れた記事がいくつかあります。

于 2009-08-15T17:23:42.330 に答える