Halllo liebes Forum
ich habe ein kleines Problem.
Ich habe eine JCombox mit eigenem Model.
Das wird auch alles gut und schön angezeigt. Sobald ich allerdings ein Objekt der Liste auf die sich das Model bezieht hinzufüge werden im DropDown Bereich nur noch Leere Weiße Zeilen angezeigt.
Relevanter Code:
(In der Klasse Settings eine statische ArrayList der ForceFields)
ich habe ein kleines Problem.
Ich habe eine JCombox mit eigenem Model.
Das wird auch alles gut und schön angezeigt. Sobald ich allerdings ein Objekt der Liste auf die sich das Model bezieht hinzufüge werden im DropDown Bereich nur noch Leere Weiße Zeilen angezeigt.
Relevanter Code:
(In der Klasse Settings eine statische ArrayList der ForceFields)
Java:
public class ForceFieldGroup extends JPanel implements ActionListener{
private JComboBox<ForceField> forceFieldBox;
private MyComboBoxModel model;
public ForceFieldGroup() {
this.model = new MyComboBoxModel();
this.forceFieldBox = new JComboBox<>(model);
this.add(forceFieldBox);
forceFieldBox.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if(model.getSelectedItem().equals("New")) {
Settings.forceFields.add(new SimpleForceField("Test", 0, 0, 0, 0, 0));
}
forceFieldBox.revalidate();
forceFieldBox.repaint();
}
}
Java:
public class MyComboBoxModel implements ComboBoxModel{
Object selcted = Settings.forceFields.get(0);
public ForceField getSelectedForceField() {
return (ForceField) selcted;
}
@Override
public void addListDataListener(ListDataListener l) {
// TODO Auto-generated method stub
}
@Override
public Object getElementAt(int index) {
if(index==Settings.forceFields.size())
return "New";
return Settings.forceFields.get(index);
}
@Override
public int getSize() {
return Settings.forceFields.size()+1;
}
@Override
public void removeListDataListener(ListDataListener l) {
// TODO Auto-generated method stub
}
@Override
public Object getSelectedItem() {
return selcted;
}
@Override
public void setSelectedItem(Object o) {
selcted = o;
}
public void addElement(Object f) {
Settings.forceFields.add(f);
}
public void removeElement(ForceField s) {
Settings.forceFields.remove(s);
}
public void addForceField(ForceField temp) {
Settings.forceFields.add(temp);
}
}