Ich versuche gerade eine eigenes ListModel zu erstellen, meine klasse erbt von der Klasse DefaultListModel
Spoiler anzeigen
Alles funktioniert auch gut, die Tasks werden angezeigt und alles wird auch geladen, aber wenn ich versuche einen Task hinzuzufügen, hört die JList auf zu reagieren. Ich kann nichts auswählen. Die daten werden dennoch hinzugefügt. Woran könnte das liegen?
Java-Quellcode
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package org.BeryJu.Tasky.Data;
- import java.util.ArrayList;
- //import javax.swing.AbstractListModel;
- import javax.swing.DefaultListModel;
- /**
- *
- * @author beryju
- */
- public class TaskDataListModel extends DefaultListModel{
- private ArrayList<Task> tasks = new ArrayList<>();
- private boolean debug = false;
- public TaskDataListModel(boolean debug){
- this.debug = debug;
- }
- public TaskDataListModel(TaskCollection c, boolean debug){
- this.debug = debug;
- this.tasks = c.tasks;
- }
- public TaskCollection getTasks(){
- TaskCollection t = new TaskCollection();
- t.tasks = this.tasks;
- return t;
- }
- public boolean getState(int i){
- if ("Open".equals(this.tasks.get(i).getState())){
- return false;
- }else{
- return true;
- }
- }
- public void changeAt(Task t, int index){
- this.tasks.set(index, t);
- }
- public void add(Task t){
- if (this.debug){
- System.out.println("Added Task "+t.toString());
- System.out.println(this.tasks.get(this.tasks.size() - 1).getid() + 1);
- }
- t.setid(this.tasks.get(this.tasks.size() - 1).getid() + 1);
- this.tasks.add(t);
- }
- @Override
- public int getSize() {
- return this.tasks.size();
- }
- @Override
- public Object getElementAt(int i) {
- if (this.debug){
- System.out.println("Got element at "+i);
- }
- return this.tasks.get(i);
- }
- }
Alles funktioniert auch gut, die Tasks werden angezeigt und alles wird auch geladen, aber wenn ich versuche einen Task hinzuzufügen, hört die JList auf zu reagieren. Ich kann nichts auswählen. Die daten werden dennoch hinzugefügt. Woran könnte das liegen?
Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live.
BeryJu.org BeryJu.org/Blog