2013-03-04 3 views
0

저는 Java를 처음 사용하고 Java GUI가 매우 새로운 기능입니다. 꽤 기본적인 GUI가 탭으로 구성된 창을 가지고 있습니다. 하나의 기본 창에서 사용자는 컬렉션에 항목을 추가 할 수 있습니다. 나는 위에서 언급 한 창 (즉, 추가 된 모든 항목의 목록)에있는 항목을 나열하는 ComboBox 메뉴를 원하는 다른 창을 설정하기 시작했으며 사용자가 삭제할 항목을 선택할 수있게합니다 (버튼을 통해)). "삭제"창에 항목 배열을 전달하고 여러 가지 방법으로 여러 가지 방법으로 ComboBox 내에서 사용하려고했지만 ComboBox가 생성자에서 만들어지기 때문에 항목이 추가 될 때 절대로 업데이트되지 않습니다.동적으로 ComboBox 값을 생성하십시오. Java

다른 배열에서 동적으로 업데이트되므로이 배열에 액세스하는 가장 좋은 방법은 무엇입니까?

답변

0

나는 그것을 달성하는 몇 가지 방법을 생각할 수 있습니다.

두 패널 모두 공통 모델 인터페이스에 대한 참조를 전달하는 가장 좋은 방법 중 하나입니다. 이렇게하면 첫 번째 패널에서 항목을 추가하고 두 번째 패널에서 변경 사항이 발생하면 알림을 받도록 할 수 있습니다.

이 모델을 설정시 두 패널에 전달하지 않으려는 경우 대신 단일 톤을 사용하여 모달을 두 창에 전역 적으로 액세스 할 수 있습니다. 이런 방식으로 모델 구현을 변경하는 것이 더 쉽기 때문에 생성자에게 모델을 전달하는 것을 선호하는 경향이 있습니다.

하나의 가능한 솔루션은 DefaultComboBoxModel을 기본 구현으로 사용하는 것입니다. 이 기능을 사용하면 모델에서 요소를 추가 및 제거 할 수 있지만 매우 쉽게 모델에 따라 콤보에 할당 할 수 있습니다. 그러나 이것은 당신이 컬렉션으로 달성하기를 원하는 것까지 내려갈 것입니다.

또 다른 접근법은 ChangeListenerJTabbedPane에 첨부하는 것입니다. 활성 탭이 변경되면 첫 번째 창에서 값을 검사하여 두 번째 탭에 할당 할 수 있습니다.

는 탭 창은 두 개의 창 사이의 관계에 대해 "알고"(두 개의 창을 업데이트해야하는 알고)

+0

덕분에 가정으로이하는 더 먼저 결합이다 - 좋은 솔루션을 모두. –

관련 문제