2017-01-20 2 views
-1

나는이 프로젝트에 대한 GUI를 만드는거야에 동적으로 패널을 추가하지만 난 분명히 문제가있어, 그래서 나는 스윙의 안돼서 :는 SplitPanel

내 AppFrame에 의해 형성된다 :

JFrame의를 - > ContentPane -> SplitPane

splitpane 왼쪽 구성 요소가 메뉴에 사용되고 오른쪽 구성 요소는 메뉴의 버튼에 따라 다른 JPane을 호스팅해야합니다. "제품"버튼을 누르십니까? MyProductsJPanel 등을보고 싶습니다.

splitpane이 생성되어 Jframe의 생성자에 추가되었으므로 런타임에 어떻게 액세스하고 수정할 수 있습니까?

잘못된 레이아웃입니까?

추신 : 저는 Eclipse의 WindowBuilder 플러그인을 사용합니다.이 플러그인은 물론 코드 대부분을 생성합니다. 나는 메뉴의 모든 버튼에 대한 리스너를 추가 JFrame의 생성자에서

: 좋아

+2

에 오신 것을 환영합니다 해결! 좋은 질문을하고 좋은 대답을 얻으려면 [SO Question Checklist] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)를 검토하십시오. –

+2

분할 창에 내용을 추가하려면 어떤 종류의 참조가 필요합니다. 이것은 사용자가 적절한 업데이트를 할 수있는 어떤 종류의 컨트롤러를 알려주는 메뉴를 선택할 때 메뉴에 대한 참조를 메뉴에 전달하거나 더 나은 솔루션을 위해 메뉴를 생성하도록 제안합니다. – MadProgrammer

+0

@MadProgrammer 고마워, 내가 해결 했어! 솔루션은 내가 생각했던 것보다 쉬웠다. 오른쪽 버튼을 수정하는 마우스 버튼에 이벤트 리스너를 추가했다! –

답변

0

, @MadProgrammer 기여 덕분에 나는 해결책을 줄 수 있어요. 리스너에서 :

public MouseClicked(MouseEvent arg0){ 
    splitPane.remove(splitPane.getRightComponent()); //Useless? 
    mySplitPane.setRightComponent(new OneOfMyButtonRelatedPane()); 
} 

작품 및 스택 오버플로 내 질문에