Hallo,
ich bin noch ein ziemlicher Anfänger in Java und gerade dabei mein erstes Projekt umzusetzen. Das Programm soll unter anderem die Möglichkeit bieten Notizen in einer JList anzuzeigen. Die Notizen werden zwar erstellt, aber nicht in der Liste angezeigt.
Ich habe eine Klasse "Note", welche die eigentliche Notiz darstellt. Dann eine Klasse "NoteList", die ein Array bereitstellt, also sozusagen der Datenbestand. Als Model habe ich die Klasse "NoteListModel" erstellt, welche von DefaultListModel erbt. Hier mal der Code welchen ich zum Hinzufügen einer Notiz verwende:
In der Klasse "NoteList":
In der Klasse "NoteListModel":
Der Listener welchen ich an die Schaltfläche zum Hinzufügen gehängt habe:
NACHTRAG:
Ich hab noch ein wenig rumgespielt und jetzt werden die Notizen angezeigt aber ich bin mir nicht sicher ob es so richtig implementiert ist. Im Endeffekt speichert das "NoteListModel" ja keine Notizen, sondern gibt sie lediglich an den Datenbestand weiter, welche die Notiz dann im Array anlegt. Wenn ich in meinem ActionListener z.B. die Methode .addElement(index) von DefaultListModel anstatt der überschriebenen Methode .add(index,note) aufrufe dann werden die Elemente ja nicht in meinem Array gespeichert. Aber wo genau werden sie dann gespeichert? Hält mein NoteListModel noch eine interne Liste auf die ich dann zugreifen kann/muss??
Ich hab mir zu dem Thema bereits einige Tutorials und Beispiele angesehen aber es wird immer etwas anders umgesetzt und ich bin mir daher nicht wirklich sicher ob ich alles richtig gemacht habe.
ich bin noch ein ziemlicher Anfänger in Java und gerade dabei mein erstes Projekt umzusetzen. Das Programm soll unter anderem die Möglichkeit bieten Notizen in einer JList anzuzeigen. Die Notizen werden zwar erstellt, aber nicht in der Liste angezeigt.
Ich habe eine Klasse "Note", welche die eigentliche Notiz darstellt. Dann eine Klasse "NoteList", die ein Array bereitstellt, also sozusagen der Datenbestand. Als Model habe ich die Klasse "NoteListModel" erstellt, welche von DefaultListModel erbt. Hier mal der Code welchen ich zum Hinzufügen einer Notiz verwende:
In der Klasse "NoteList":
Java:
public void addNote(int index, Note note){
noteList.add(index,note);
System.out.println("Note added");
}
In der Klasse "NoteListModel":
Java:
@Override
public void add(int index, Note note){
noteList.addNote(index,note);
fireIntervalAdded(this, index, index);
}
Der Listener welchen ich an die Schaltfläche zum Hinzufügen gehängt habe:
Java:
// Listener to add Notes
private class AddNoteAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String text = fldText.getText();
Note note = new Note(text);
// Check for real text
if (text.replace(" ", "").equals("")) {
fldText.requestFocusInWindow();
fldText.selectAll();
System.out.println("Please type in your Note");
return;
}
// Add Note after selected Note. If no selection add at beginning.
int index = noteJList.getSelectedIndex();
if (index == -1) {
index = 0;
} else {
index++;
}
noteListModel.add(index, note);
// Clear Textfield after adding Note
fldText.requestFocusInWindow();
fldText.setText("");
}
}
NACHTRAG:
Ich hab noch ein wenig rumgespielt und jetzt werden die Notizen angezeigt aber ich bin mir nicht sicher ob es so richtig implementiert ist. Im Endeffekt speichert das "NoteListModel" ja keine Notizen, sondern gibt sie lediglich an den Datenbestand weiter, welche die Notiz dann im Array anlegt. Wenn ich in meinem ActionListener z.B. die Methode .addElement(index) von DefaultListModel anstatt der überschriebenen Methode .add(index,note) aufrufe dann werden die Elemente ja nicht in meinem Array gespeichert. Aber wo genau werden sie dann gespeichert? Hält mein NoteListModel noch eine interne Liste auf die ich dann zugreifen kann/muss??
Ich hab mir zu dem Thema bereits einige Tutorials und Beispiele angesehen aber es wird immer etwas anders umgesetzt und ich bin mir daher nicht wirklich sicher ob ich alles richtig gemacht habe.
Zuletzt bearbeitet: