Swing에서 JList 위젯을 업데이트하는 데 문제가 있습니다.Swing에서 모델에 요소를 추가 한 후 JList가 업데이트되지 않습니다.
모델을 만들고 요소를 추가 한 다음 모델을 JList 요소의 모델로 설정합니다. 모든 것이 잘 작동하고 올바르게 표시됩니다.
문제는 모델에 요소를 추가하려는 경우입니다. 아무것도하지 않습니다.
옵저버 패턴이 업데이트 된 후 요소를 추가하고 있습니다.
내가 뭘 잘못하고 있니?
다음은 UI 코드입니다.
// all the imports
public class View extends JPanel implements Observer{
private vivo vivox;
private Label label = new Label("Hola Mundo");
private DefaultListModel modelo = new DefaultListModel();
private JList nameList = new JList(modelo);
public View() {
super();
nameList.setFont(new Font("Arial",Font.BOLD,40));
this.setLayout(new GridLayout());
JButton button = new JButton("New Time");
JButton button1 = new JButton("New Time2");
label.setFont(new Font("Serif", Font.PLAIN, 50));
JPanel group = new JPanel(new GridLayout());
group.add(button);
group.add(button1);
JPanel east = new JPanel(new BorderLayout());
east.add(label, BorderLayout.NORTH);
east.add(nameList, BorderLayout.CENTER);
east.add(group, BorderLayout.SOUTH);
add(east, BorderLayout.EAST);
vivox = new vivo();
vivox.addObserver(this);
this.setListElements();
}
public void setListElements() {
this.modelo.addElement("Messi");
this.modelo.addElement("CR7");
this.modelo.addElement("Iniesta");
}
@Override
public void update(Observable o, Object arg) {
this.label.setText("Some changes");
this.modelo.addElement("Maradona");
}
}
은 어디? 레이아웃에 목록을 추가 – Antoniossss
생성자에서 east.add (nameList, BorderLayout.CENTER); –
update() 메서드가 호출되었음을 어떻게 알 수 있습니까? 메서드에 전달 된 arg의 값을 표시하기위한 몇 가지 기본 디버그 코드를 추가합니다. – camickr