컬렉션에 JList
이 연결되어 있습니다. 컬렉션이 변경되면 JList
이 자동으로 새로 고쳐 져야합니다. 그러나 JList
은 JFrame
을 최소화 (또는 최대화) 한 후에 만 새로 고침됩니다.Java JList 새로 고침은 최소화되거나 최대화 된 후에 만 적용됩니다.
왜?
저는 Java에 익숙하지 않으며 배우려고합니다.
나는이 목록 모델에 대한 수집이 : 다른 클래스에서
public class UserCollection extends Vector<User> implements ListModel{
private static final long serialVersionUID = 2668410577023194442L;
@Override
public void addListDataListener(ListDataListener arg0) {
System.out.println("add list! --- " +arg0.toString());
}
@Override
public Object getElementAt(int index) {
return this.get(index).getName();
}
@Override
public int getSize() {
return(this.elementCount);
}
@Override
public void removeListDataListener(ListDataListener arg0) {}
}
을, 나는 내가 가지고있는 JFrame
클래스에서 userList.add(u1);
또는 userList.remove(u1);
와 컬렉션을 채우는 :
JList list = new JList();
list.setModel(xmppManager.userList);
콘솔에서 컬렉션이 변경되는 것을 볼 수 있으며, 내가 JFrame
을 최소화하거나 최대화하면당신의 JList의 모델이
SwingUtilities.invokeLater(new Runnable() {
public void run() {
jlist.revalidate(); // triggers a repaint of all the items in the JList.
jlistContainer.repaint(); // Not sure if this one is needed
}
});
업데이트됩니다 방법 :은
컬렉션이 변경되면
"컬렉션에 연결됨"이란 무엇을 의미합니까? 핵심은 JList의 모델을 유지 관리하고 변경하는 방법입니다. 적절한 모델을 변경하면 JList가 자동으로 변경됩니다. 코드를 보여줄 수 있습니다. –
코드로 업데이트 ... 고맙습니다. 죄송합니다. 저는 자바에서 새로 왔고 배우려고합니다. – Laphroaig