Снимок экрана программы
Я работаю над программой, которая читает Name,Height,Weight,Size (String,int,int,String)
и создает объект типа Person.Ввод (не на консоли конечно) должен выглядеть следующим образом:
Mary (h=170, w=56, size=S)
John (h=160, w=76, size XL)
в JList с JScrollPane сразу после нажатия Добавить
Я создал jButton:
JButton addPerson = new JButton("Add");
А потом я добавил новый ActionListener
addPerson.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addPerson) {
int Height = sliderHeight.getValue();
int Weight = sliderWeight.getValue();
String name = nameField.getText();
String size = (String) sizes.getSelectedItem();
if (name.length() > 0) {
model.addPerson(Height, Weight, name, size);
//The `model` here is an Object of ListData class.
}else {
System.out.println("Enter the name.");
}
}
}
});
Вот так выглядит мой класс AbstarctModel:
private class ListData extends AbstractListModel<Person> {
ArrayList<Person> lista = new ArrayList<Person>();
@Override
public int getSize() {
return lista.size();
}
public void addPerson(int Height, int Weight, String name, String size) {
lista.add(new Person(Height, Weight, name, size));
fireIntervalAdded(this, 0, lista.size());
//I think the problem is somewhere here.
System.out.println("Person added.");
System.out.println("List size: " + getSize());
for (Person p : lista) {
System.out.println(p);
}
}
@Override
public Person getElementAt(int arg0) {
// TODO Auto-generated method stub
return null;
}
}
Это отлично работает, объект Personсоздан и добавлен в ArrayList.
НО Он не отображается на JList
(чуть выше JSliders
)
Итак, суммируя его,Тип персонажа Объект создан, добавлен в ArrayList
НО теперь отображается на JList
после того, как я использую fireIntervalAdded()
метод.