약간의 문제가 있습니다. ListModel 및/또는 ListSelectionModel의 목적을 이해하지 못합니다. 자바 스윙에서 MVC 패턴/UI 위임 원칙이 중요하다고 생각합니다.Java Swing에서 모델/MVC의 목적
예 : 나는 간단한 JList를 갖고 있으며 선택된 값을 가져오고 싶습니다. 그래서 난 그냥 ValueChanged Methode 함께 ListSelectionListener 추가 할 수 있습니다.
하지만 (기본) 모델 또는 (기본) SelectionModel을 사용하면 무엇을 할 수 있습니까? 모델이 장면 뒤에서 작동 할 가능성이 있습니까? 난 당신이 선택한 데이터를 모델을 통해 얻고이 모델을 사용하여 데이터 값을 변경한다고 생각합니다. 그래서 모델이 필요하지만 실제로 사용자 정의 모델을 구현하지 않습니까?
String[] shoppingCart = {"Pen", "Paper", "Smartphone", "Cheese"};
JList list = new JList(shoppingCart);
c.add(list, BorderLayout.CENTER);
ListSelectionModel lsm = list.getSelectionModel();
ListModel lm = list.getModel();
System.out.println("lm: " + lm);
System.out.println("lsm: " + lsm);
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
//System.out.println(list.getSelectionModel().getValueIsAdjusting());
System.out.println("value changed " + list.getSelectedValue());
}
});
그래서 getSelectionModel 나에게 내 선택된 값을 제공합니다
여기 내 코드입니다. 그러나 모델에서 호출되지만 장면 뒤에있는 메서드일까요?