非常に漠然とした質問であるというギヨーンの意見に同意します。ですから、あなたが今までのようにそれを行うには、非常に正当な理由があるかもしれません. ただし、それが役立つ場合は、透明なレイヤーを完全に破棄して、マウス リスナーを JLayeredPane に直接アタッチするだけで済みます。
JPanel jP = new JPanel();
JLayeredPane jLP = new JLayeredPane();
MouseAdapter mouse = new MouseAdapter();
jLP.addMouseListener(mouse);
次に、MouseAdapter クラス:
public class MouseAdapter{
//Make sure you override the methods
}
もう 1 つの方法は、私が頻繁に使用する方法ですが、単純に JLayeredPane を拡張して MouseListener を実装することです。
public class MyLayers extends JLayeredPane implements MouseListener
{
public MyLayers(){
addMouseListener(this);
}
//again make sure you override the methods
}
これにより、NetBeans で「コンストラクターでこれがリーク」がスローされますが、無視できます。