2017-06-12 11 views
0

Java Swing、特にJLayeredPaneに問題があります。 IがのJLayeredPane 4つのJPanelを含んデッキマネージャを持って、私はペインにオブジェクトを追加すると、次に別に切り替えて、オブジェクトが最初に目に見えないターン、私は上にマウスを通過するとき、それもthoug可視返します私は、別のパネルによここにコードは次のとおりです。「隠された」パネルから表示されるJLayeredPaneオブジェクト

deckSelector = new JLayeredPane();               

    Point origin = new Point(30, 0); 

    for (int i = 0; i < types.length; i++) { 
     Deck deck = new Deck(types[i], colors[i], origin); 
     deckSelector.add(deck, i); 
     decks[i] = deck; 
    } 

カードを追加する

int j = 0; 
    boolean found = false; 
    for(int i=0; i<types.length; i++){ 
     if(selectors[i].isSelected()){ 
     deckSelector.setLayer(decks[i], 3); 
       found = true; 
       j=2; 
      } else 
      if(!selectors[i].isSelected()){ 
       deckSelector.setLayer(decks[i], j); 
       if(found) j--; 
       else j++; 
      }; 
      } 

を変更するには:

Card btnNewButton = new Card("Name Card"); 
    add(btnNewButton); 

私はどのデッキマネージャを持っていますメインのJLayerdPaneですが、4枚のデッキが重ねられています。カードを追加できますが、デッキから別のカードに切り替えると、カードはまだ表示されます。誰でも助けてくれますか?

答えて

2

私は

マウスオーバーイベントにマウスを渡すコンポーネントの生成です。 JButtonの場合、境界線が変更されるため、コンポーネントはそれ自体を再描画する必要があります。そのため、コンポーネントが表示されるのはこのためです。

のJLayeredPaneを使用する点は、同時に全ての層を見ることです。その一部のコンポーネントは他のコンポーネントの上に積み重ねられます。

あなただけ、あなたはCard Layoutを使用する必要があり、一度に単一のパネルを表示したい場合。その後、どのパネルが表示されているか、またいつでも切り替えることができます。

あなたは本当にあなたが見たいと思っていないパネル上のsetVisible(false)を使用してみてください、その後のJLayeredPaneを使用する必要があると思われる場合。これにより、そのレイヤー内のパネル上のコンポーネントにイベントが渡されないようにする必要があります。

+0

協力いただきありがとうございます、私はかなり遠くペイン自体からのボタンの中から、ペインの間スワップしたかった、とカードのレイアウトは、ペインに添付ボタンがありbcの私はのJLayeredPaneを使用していた、私はそうでないことを使用していたと思います。 setVisible(false)を試してみます。 – GabLog

+0

@ GabLog、 'カードレイアウトにはペインにボタンが付いています。そうではありません。あなたは明らかにチュートリアルを読んでいないか、コードをダウンロードしてサンプルコードをテストしていません。私はタブ区画で混乱しましたが、あなたは明らかにその傲慢 – camickr

+0

SRYは、私は単に事実を述べました。あなたは、「CardLayout」にペインにボタンが付いていると述べました。それは完全に真実ではないので、私はあなたのステートメントを正しく読んで、 'CardLayout'のチュートリアルを読むように言った。私は、「タブ付きペイン」がどこに会話に入ったのか全く分からない。私は私の答えでそれを言及したことはありません。私は読者ではありません。私はあなたが何を言おうとしているのか分からず、あなたの実際の声明に私のコメントだけを基づいています。あなたの声明に基づいて、あなたは 'CardLayout'がどのように働いたのか理解できませんでした。だから私は問題を明確にするために余分な時間を費やしました。それは助けと呼ばれています! – GabLog

関連する問題