JPanelはすでにJFrameに追加されています。そして私はJPanelを動的に追加しました。飛行中にJPanelを追加すると、前に追加されたJPanelの近くにとどまります。以前のJPanelを削除するにはどうすればよいですか?新しいものを追加する前にJFrameからJPanelを削除する方法
PS 私はまた、カードレイアウトの使用について考えています - それは良い方法ですか?
JPanelはすでにJFrameに追加されています。そして私はJPanelを動的に追加しました。飛行中にJPanelを追加すると、前に追加されたJPanelの近くにとどまります。以前のJPanelを削除するにはどうすればよいですか?新しいものを追加する前にJFrameからJPanelを削除する方法
PS 私はまた、カードレイアウトの使用について考えています - それは良い方法ですか?
は、あなたがこの方法のようにそれを使用しますJFrame
で子コンポーネントを与える方法getComponents()
あり:
Component[] comp = frame.getContentPane().getComponents();
for(int i=0; i<comp.lenght; i++)
{
if(comp[i] instanceof JPanel)
{
frame.remove(comp[i]);
}
}
注:この修正プログラムは、あなたが、単一の持っているときに動作しJPanel
一度にJFrame
内側に、それ以外の場合はあなたがつもりJFrame
からすべてのあなたのJPanels
を削除します。
thx!やってみます!私はいくつかの意見を持っていることのJPanelクラスを拡張し、ので、私は私も同じ場所に必要なすべてのパネルを追加しようとした... – dizpers
を必要なパネルを見つけるために、「MyViewClassのinstanceof」を使用することができますし、\隠す操作を示しんだと思います。毎回削除するよりも良い方法です。しかしパネルは、私が望むように、パネルの下に横たわっていません。私はそれらを別の下に置くために欲望を行うことはできますか? – dizpers
使用 'BorderLayout'あなたは' '(COMP)を追加使用している場合、すべての' Components'は、中央に追加されます。これは、FIFOの階層を使用します。 –
はい、[ 'CardLayout'(http://docs.oracle.com/javase/7/docs/api/java/awt/CardLayout.html)**良い方法です。 –
うん!私は今それを使用します。私はすべて私が必要とする。 – dizpers