Einer JList mit eigenem ListModel einen Eintrag hinzfügen

Pflaumi123

Mitglied
Hallo :)

Ich würde gerne der JList einen Eintrag des Typs Ziffer hinzufügen. Und das mithilfe einer Unterklasse von AbstractListModel(Parametrisiert), also sprich einem eigenen ListModel.

Beim Kompilieren kommt beim setzen des Models der Hinweis: "Type safety: The method setModel(ListModel) belongs to the raw type JList. References to generic type JList<E> should be parameterized"

Das Programm wirft keinen Laufzeitfehler, aber fügt die Ziffer der Jlist nicht hinzu...
Könnte mir jemand erklären woran das liegt?
Hier meine Klassen:
GUI:
Code:
public class GUI extends JFrame {

    private JPanel contentPane;
    private JTextField txtZiffer;
    private JList list;
    private JButton btnSpeichern;
    private UnterklasseAbstract<Ziffer> model;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    GUI frame = new GUI();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public GUI() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 599, 491);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        contentPane.add(getTxtZiffer());
        contentPane.add(getList());
        contentPane.add(getBtnSpeichern());
    }

    private JTextField getTxtZiffer() {
        if (txtZiffer == null) {
            txtZiffer = new JTextField();
            txtZiffer.setBounds(68, 86, 146, 26);
            txtZiffer.setColumns(10);
        }
        return txtZiffer;
    }
    private JList<Ziffer> getList() {
        if (list == null) {
            list = new JList<Ziffer>();
            list.setBounds(272, 178, 200, 202);
            list.setModel(getUnterklasseAbstract());
        }
        return list;
    }
    private JButton getBtnSpeichern() {
        if (btnSpeichern == null) {
            btnSpeichern = new JButton("speichern");
            btnSpeichern.setBounds(80, 178, 115, 29);
            btnSpeichern.addActionListener( e -> {
                model.add(new Ziffer(2));
            });
        }
        return btnSpeichern;
    }
    private UnterklasseAbstract<Ziffer> getUnterklasseAbstract(){
        if(model == null){
            model = new UnterklasseAbstract<>();
        }
        return model;
    }
}

Unterklasse AbstractListModel:
Code:
public class UnterklasseAbstract<T> extends AbstractListModel<T>{
  
    private ArrayList<T> list;
    int i = 0;
  
    public UnterklasseAbstract(){
        list = new ArrayList<T>();
    }
  
    public void add(T t){
        list.add(t);
        }
  
    public void change(int index, T t){
        list.add(index, t);
    }
  
    public void remove(int index){
        list.remove(index);
    }
    @Override
    public T getElementAt(int index) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int getSize() {
        // TODO Auto-generated method stub
        return 0;
    }
//    public void change(int index){
//      
//    }
}

Klasse Ziffer:
Code:
public class Ziffer {
    private int nummer;
  
    public Ziffer(int nummer){
        this.nummer = nummer;
    }
    public void setNr(int nummer){
      
    }
  
    public int getNr(){
        return nummer;
    }
}

Vielen Dank und mfG :)
 

Enceladus271

Bekanntes Mitglied
Da die Klasse JList generic ist sollte sie auch entsprechend deklariert werden:
private JList<Ziffer> list;
Das behebt nur die Compiler Warnung aber nicht die eigentlichen Probleme:

1. Die Methode getElementAt in deinem Model gibt immer null zurück
2. Die Methode getSize in deinem Model gibt immer 0 zurück
3. Du musst nach dem hizufügen die Methode fireIntervalAdded aufrufen

Versuchs mal so:
Java:
  public void add(T t) {
     list.add(t);
     fireIntervalAdded(this, list.size() - 1, list.size() - 1);
   }

  @Override
   public T getElementAt(int index) {
     return list.get(index);
   }

   @Override
   public int getSize() {
     return list.size();
   }
 

Pflaumi123

Mitglied
Um die Methoden getSize und getElementAt hatte ich mir zu dem Zeitpunkt noch keine Gedanken gemacht und nur übernommen deshalb waren die quasi noch leer..
Okay, die fireIntervallAdded() habe ich nun hinzugefügt. Die Parameter darin geben doch an an welcher Stelle der Eintrag hinzugefügt werden soll, oder?
Jetzt wird zwar etwas der Liste hinzugefügt, aber nur
'Packagename.Klassenname@787b607b'. Weißt du bei welcher Art Fehler man allgemein so eine Meldung bekommt? Hatte das nun schon öfter...
also irgendwo stimmt was noch nicht.. :D

LG Pflaumi
 

InfectedBytes

Top Contributor
Das ist kein Fehler, das ist einfach nur die Standardrückgabe von toString. Wenn du eine eigene Klasse definierst, kann Java ja schlecht wissen in welcher Form du das gerne Ausgegeben haben willst, daher gibt die toString Methode standardmäßig immer den Klassennamen+Objektadresse zurück. Wenn du lieber etwas anderes haben willst, musst du die toString Methode überschreiben und was anderes zurückgeben.
 

VfL_Freak

Top Contributor
Moin,
'Packagename.Klassenname@787b607b'. Weißt du bei welcher Art Fehler man allgemein so eine Meldung bekommt?
Keine Ahnung, wo das bei Dir kommt, aber @787b607b ist KEINE Fehlermeldung, sondern die Adresse der Objectreferenz !!

Beispiel:
Java:
Array<String> myArray = new Array<String>;
// ... Array füllen
System.out.println( myArray[i] );  // würde den i-ten String ausgeben
System.out.println( myArray );  // gibt die o. g. Adresse aus

Gruß Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
K Mehrfachselektierungen in einer JList AWT, Swing, JavaFX & SWT 6
L Swing Component alignment innerhalb einer JList AWT, Swing, JavaFX & SWT 3
M Accelerator zu JMenuItem des JPopupMenu einer JList AWT, Swing, JavaFX & SWT 2
MiMa Dateien aus Ordner in einer JList Ausgeben AWT, Swing, JavaFX & SWT 32
P Elemente einer JList ausgeben AWT, Swing, JavaFX & SWT 11
B Aktualisierung einer JList AWT, Swing, JavaFX & SWT 5
U Swing Problem bei der Darstellung "komplexer Objecte" in einer JList mit AbstractListModel: AWT, Swing, JavaFX & SWT 3
H Swing ListCellRenderer einer JList zeichnet sporadisch falsch AWT, Swing, JavaFX & SWT 6
S Swing Elemente einer JList Farbig hinterlegen AWT, Swing, JavaFX & SWT 6
G JList mit einer großen Anzahl an Einträgen AWT, Swing, JavaFX & SWT 15
J Aus einer JList den Inhalt als Textdatei speichern AWT, Swing, JavaFX & SWT 15
L Swing Input Focus eines JTextFields in einer JList AWT, Swing, JavaFX & SWT 2
N Swing Schriftart einer JList AWT, Swing, JavaFX & SWT 4
M Swing Tabulatorenfunktion in einer JList! AWT, Swing, JavaFX & SWT 8
U Ein Element in einer JList farbig hervorheben ! AWT, Swing, JavaFX & SWT 2
A Größe einer JList beeinflussen AWT, Swing, JavaFX & SWT 2
I List aus einer JList AWT, Swing, JavaFX & SWT 3
A Drucken einer JList AWT, Swing, JavaFX & SWT 4
A Element aus einer JList löschen AWT, Swing, JavaFX & SWT 5
G Wie ziehe ich ein Objekt aus einer JList? AWT, Swing, JavaFX & SWT 7
C Selektion einer JList aufheben AWT, Swing, JavaFX & SWT 3
C Auf Objektmethoden in einer JList zugreifen AWT, Swing, JavaFX & SWT 7
S Probleme mit dem Update einer JList AWT, Swing, JavaFX & SWT 7
A NullPointerException in einer JList AWT, Swing, JavaFX & SWT 7
S JList Bild und Text in einer Zeile AWT, Swing, JavaFX & SWT 2
B Checkboxes in einer JList AWT, Swing, JavaFX & SWT 3
sliwalker Swing: Scrollbalken scrollt den Inhalt einer JList nicht AWT, Swing, JavaFX & SWT 2
B linken rand einer JList-zelle festlegen AWT, Swing, JavaFX & SWT 4
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
mac2010 JavaFX Einbindung einer Karte AWT, Swing, JavaFX & SWT 1
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
@SupressWarnings() JavaFX Auf den Controller einer ListCell zugreifen AWT, Swing, JavaFX & SWT 4
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
B Textfelder in einer ListView ausgeben AWT, Swing, JavaFX & SWT 13
J Searchfunktion auf einer MS Access Datenbank AWT, Swing, JavaFX & SWT 7
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
M Inhalte einer FlowPane AWT, Swing, JavaFX & SWT 4
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
FRI3ND JavaFX: Wie kann ich einer Scene Argumente übergeben? AWT, Swing, JavaFX & SWT 14
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
1 Swing Progressbar benutzen um Fortschritt einer Methode anzuzeigen AWT, Swing, JavaFX & SWT 4
K JavaFX ViewTable mit einer LinkedList befüllen AWT, Swing, JavaFX & SWT 3
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
D Java FX Image in einer Webanwendung annotieren und den Bereich ausschneiden AWT, Swing, JavaFX & SWT 0
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
MiMa Selektion aus einer ListView AWT, Swing, JavaFX & SWT 5
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J JFram Location aus Konstruktor einer anderen Klasse auslesen AWT, Swing, JavaFX & SWT 10
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben