2017-02-02 20 views
-2

私はJPanelを持っています。ボタンをクリックした後、アイコンが垂直に1つずつ表示され、別のアイコンがクリックされた後にもう1つ下のアイコンが表示されます。JPanelの上と下にアイコンを配置する方法

クリックごとにアイコンの位置が上下に交互に変わります。

私は多くのレイアウトマネージャを試しましたが、私が望むように動作させることはできません。

EDIT: 例、最初のクリック後

After first click

第二にクリックし、

Second click

第三にクリックし、トップ側の別のアイコンなど。 これは私が作成しているチェスゲームに追加されることを目的としています。だから私は死んだ部分を適切なプレーヤー側(黒または白)に表示したい。黒い部分は上に行き、白い部分はJPanelの下に行きます。これがそれをクリアすることを願っています。ありがとう。

+1

私はここで何をしようとしているのかを正確に視覚化しています。アイコンを交換するには、JLabelで 'setIcon(...)'を呼び出すだけです。 JLabelsを上下に配置するには、BorderLayoutを使用しますが、これもあなたが探しているものかどうかはわかりません。あなたの問題を明確にしてください。 –

+0

@HovercraftFullOfEels例としていくつかの画像を追加しました。アイデアは、ボタンをクリックするたびにアイコンが表示された後です。アイコンが表示される位置は、JPanelの上部とJPanelの下部の間で交互に行わなければなりません。これは私が作成しているチェスゲームに追加され、死んだ部分が適切なプレイヤー側(黒または白)に表示されるようにします。黒い部分は上に行き、白い部分はJPanelの下に行きます。これがそれをクリアすることを願っています。ありがとう。 – Ma7ot

答えて

2

黒い部分が上になり、白い部分がJPanelの下に移動します。

1つのパネルを使用する代わりに、パネルをネストすることをお勧めします。これには、垂直BoxLayoutを使用できます。

Box deadWhitePieces = Box.createVerticalBox(); 
Box deadBloackPieces = Box.createVerticalBox(); 
Box deadPieces = Box.createVerticalBox(); 
deadPieces.add(deadBlackPieces); 
deadPieces.add(Box.createVerticalGlue()); 
deadPieces.add(deadWhitePieces); 
frame.add(deadPieces. BorderLayout.LINE_START); 

次に、必要に応じて適切なパネルにラベルを追加します。例:

deadWhitePieces.add(new JLabel(...)); 
deadWhitePieces.revalidate(); 
deadWhitePieces.repaint(); 
+0

(1+)あなたは私がしたよりも問題の理解が深かった。 touche。 –

関連する問題