2011-12-21 3 views
2

私はWindowBuilder ProをEclipse用に使用しています。お互いに完全に重なる2つのJpanelが必要です。私はその後、コンボボックスの選択に基づいて視線を切り替えることができます。私がGUIビルダーでこれを習得しようとすると、最初のパネルは2番目のパネルに置き換えられます。そして助言してください?Eclipse用WindowBuilderとオーバーラップするJPanels

+0

どのレイアウトマネージャを使用していますか? – Sheriff

+0

@Sheriff - GroupLayout – pingu

+0

+1私は自分の答えを研究するまであなたがそれを行うことができたことを知らなかったので、+1。 – Sheriff

答えて

3

お互いに完全に重なる2つのJpanelが必要です。まさにこれを行う例How to Use Card Layout:私はその後COMBOXボックス

参照の選択に基づいて自分のvisibiltyを切り替えることができるだろう。

4

tutorialに従ってgroupLayoutを使用することができます。

母親にコンポーネントを追加し、GroupLayoutを使用するようにパネルを設定する必要があります。

次に、レイアウトに水平と垂直の両方の間隔でコンポーネントをParallelGroupとして追加します。つまり、同じXとY空間を占有します。その後、必要に応じてJPanelsも隠すようにして、有効/無効にします。

私はそれがうまくいく方法がそうであると信じて:

 JPanel panel1, panel2, panel3; 
     //initialize panel3, etc 
     panel1=new JPanel(); 
     panel2 = new JPanel(); 
     panel1.add(new JTextField("Panel1")); 
     panel2.add(new JTextField("PANEL2")); 

     groupLayout = new GroupLayout(panel3); 

     panel3.setLayout(groupLayout); 

     groupLayout.setHorizontalGroup(
     groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) 
      .addComponent(panel1) 
      .addComponent(panel2) 
     ); 
     groupLayout.setVerticalGroup(
      groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) 
      .addComponent(panel1) 
      .addComponent(panel2) 
     ); 
     panel1.setEnabled(false); 
     panel1.setVisible(false); 

そして含むActionPerformed方法でJCheckBoxのを追加します。私のために必要な動作を生成

if(panel1.isEnabled()) { 
    panel1.setEnabled(false); 
    panel1.setVisible(false); 
    panel2.setEnabled(true); 
    panel2.setVisible(true); 

}else 
if(panel2.isEnabled()) { 
    panel2.setEnabled(false); 
    panel2.setVisible(false); 
    panel1.setEnabled(true); 
    panel1.setVisible(true); 

} 

を。あなたはをJCheckBoxのためにかなり簡単に切り替えることができるはずです。

EDIT:「自分のJパネル」を削除する必要がなくなりました。これは当てはまりません。上記の方法では、GroupLayoutとCardLayoutの両方の利点を得ることができます。

+1

なぜ車輪を改造するのですか? CardLayoutは、この目的のために設計されています。 – camickr

+0

このSheriffのおかげで、この問題は、間違っていない限り、フォームを視覚的にデザインするのが非常に難しいということです。 – pingu

+1

@pinguの心配はありません。カードのレイアウトはあなたが探しているもののようです。私はこれが好ましい方法であるいくつかの状況を見ることができますが、全体的なカードレイアウトはこのために設計されています。 – Sheriff

0

お互いに完全に重なる2つのJpanelが必要です。

私はCardLayoutがその理由のために正確にあると信じています。

基本的に、CardLayoutを使用して異なるパネルまたは「カード」をネストし、プログラムによって(あるイベントで)表示するように適切なカードを設定することができます。

+0

-1この回答は30分早く与えられました。重複した回答でフォーラムを混乱させる必要はありません。 – camickr

関連する問題