2010-11-27 32 views
1

Donc j'ai un JFrame, dans lequel il a un tas de JPanel qui s'appelle venPanel. Lorsque je clique sur un venPanel, je veux que le JFrame ajoute un nouveau JPanel à l'est de la mise en page (parce que le JFrame utilise la mise en page de bordure). Comment puis-je y parvenir dans ma classe venPanel? Actuellement, le comme pour le venPanel est mis en œuvre écouteur d'action mouseClick:en cliquant sur un JPanel dans un JFrame

@Override 
public void mouseClicked(MouseEvent arg0) { 
    try { 
     GUIVenDetails vendetail = new GUIVenDetails(ven); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

GUIVenDetails est le JPanel que je voulais ajouter à l'est du JFrame .. j'espère que la question est claire ..

Répondre

2

Quelque chose comme:

JPanel source = (JPanel)event.getSource(); 
JPanel parent = (JPanel)source.getParent(); 
parent.add(anotherPanel, BorderLayout.EAST); 
parent.revalidate(); 
+0

Oui et envisager de retirer 'GUIVenDetails' de' JFrame' existant, avant d'en ajouter un nouveau, si cet événement se produit une seconde fois? –

2

Ou vous pouvez ajouter un JPanel à l'Est qui utilise un CardLayout puis échanger JPanels à cet endroit en appelant les méthodes CardLayout.