2014-12-29 3 views
0

특정 JMenuItem을 선택하여 프레임에서 가능한 두 JPanel 사이를 전환하고 싶습니다. 지금까지 시도하는 것 :JMenuItem을 하나의 JPanel로 만들고 다른 것을 숨기기

액션 청취자를 내의 JMenuBar 클래스 :

@Override 
public void actionPerformed(ActionEvent e) { 
     if (e.getSource().equals(fullList)) 
      gui.switchToFullList(); 
     else if (e.getSource().equals(history)) 
      gui.switchToHistory(); 
} 

GUI 클래스에서 :

historyfullList가 JPanel의입니다
void switchToFullList() { 
    remove(history); 
    add(fullList); 
} 

void switchToHistory() { 
    remove(fullList); 
    add(history); 
} 

.

이것은 어떤 식 으로든 프레임을 수정하지 않는 것 같습니다.

+4

난 [CardLayout]을 사용하여 추천을 줄 (http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html)를 대신 . – kiheru

답변

0

하나의 패널을 표시하고 다른 패널을 숨기려면 둘 다 프레임의 childreen이어야합니다. 그런 다음 해당 패널에 액세스 할 수 있습니다 : frame.JpanelName.

이력을 제거하고 fullList 첨가

예 :

frame.remove(frame.history); 
frame.getContentPane().add(frame.fullList); 
frame.validate(); 
frame.repaint(); 
+0

'frame.add (...)'와'frame.getContentPane(). add (...)'의 차이점은 무엇입니까? – Saraph

관련 문제