자바 스윙에서 JList
과 JComboBox
을 동기화하여 데이터를 동기화하는 가장 좋은 방법은 무엇입니까? 즉, 특정 시점에서 동일한 항목 목록을 유지하는 것이 가장 좋습니다. 기본적으로 항목을 항목에 추가하거나 제거하는 경우 다른 항목은 자동으로 변경 사항을 반영해야합니다.동기화 된 JList 및 JComboBox?
나는 다음을 수행하려고했지만, 작동하지 않는 것 : 모두 작동해야하므로
JList list = new JList();
JComboBox comboBox = new JComboBox();
DefaultListModel listModel = new DefaultListModel();
// add items to listModel...
list.setModel(listModel);
comboBox.setModel(new DefaultComboBoxModel(listModel.toArray()));
나는 API를 닦은 후에도 그렇게 생각하지 않았다. 그것은 완벽하게 작동했습니다. 도와 주셔서 정말로 고맙습니다! –
항목을 동기화하는 데는 알 맞지 만 선택한 항목을 동기화하는 간단한 방법이 있습니까? – HpTerm
@HpTerm : 그리 쉽지 않습니다. 콤보 박스 모델은 선택 항목 자체를 관리하지만 목록에는 별도의 ListSelectionModel이 있습니다. ListSelectionModel을 구현하는 DefaultComboboxmodel을 서브 클래스화할 수도 있고 리스너를 사용하여 선택 상태를 동기화 할 수도 있습니다 (단, 무한 루프를 피할 수 있도록주의하십시오). (그리고 선택 모드를'SINGLE_SELECTION'으로 설정해야합니다.) –