Hallo zusammen,
mein Ziel ist es ein Objekt der Klasse Liste mit der Größe z.B. 3 anzulegen(Das ist ja nun noch kein Hexenwerk )
Mit der GUI möchte ich beliebig ganze Zahlen in die JList hinzufügen. (Später auch wieder entfernen...)
--Das soll aber ohne die Benutzung von Parametern stattfinden--
Das Problem ist bei mir das Hinzufügen zur JList.
Die Klasse Liste war bis auf die extends-Anweisung bereits so gegeben und sollte nicht verändert werden(war der Ansatz, die Klasse Liste als Unterklasse von DefaultListModel zu verwenden richtig?)
Nun möchte ich der Klasse JList das Model setzen, in der Art:
list.setModel(getListe());
bei der Ausführung des Programms werden die Zahlen nun nicht in die Liste übertragen :/
Hier die Klasse Liste:
Und nun hier die GUI:
Wäre toll, wenn mir jemand helfen kann
mein Ziel ist es ein Objekt der Klasse Liste mit der Größe z.B. 3 anzulegen(Das ist ja nun noch kein Hexenwerk )
Mit der GUI möchte ich beliebig ganze Zahlen in die JList hinzufügen. (Später auch wieder entfernen...)
--Das soll aber ohne die Benutzung von Parametern stattfinden--
Das Problem ist bei mir das Hinzufügen zur JList.
Die Klasse Liste war bis auf die extends-Anweisung bereits so gegeben und sollte nicht verändert werden(war der Ansatz, die Klasse Liste als Unterklasse von DefaultListModel zu verwenden richtig?)
Nun möchte ich der Klasse JList das Model setzen, in der Art:
list.setModel(getListe());
bei der Ausführung des Programms werden die Zahlen nun nicht in die Liste übertragen :/
Hier die Klasse Liste:
Java:
import javax.swing.DefaultListModel;
public class Liste extends DefaultListModel {
private Object[] data;
private int count;
public Liste(int size) {
data = new Object[size];
}
public void add(Object x) {
if (count == data.length) {
Object[] neu = new Object[data.length * 2];
for (int i = 0; i < data.length; i++)
neu[i] = data[i];
data = neu;
}
data[count] = x;
count++;
}
public Object remove() {
if (count > 0) {
count--;
return data[count];
} else
return null;
}
public int getCount() {
return count;
}
}
Und nun hier die GUI:
Java:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JList;
public class GUI extends JFrame {
private JPanel contentPane;
private Liste liste;
private JTextField txtZahl;
private JLabel lblGanzeZahl;
private JList list;
private JButton btnSpeichern;
/**
* 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, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.add(getTxtZahl());
contentPane.add(getLblGanzeZahl());
contentPane.add(getBtnSpeichern());
contentPane.add(getList());
}
private JTextField getTxtZahl() {
if (txtZahl == null) {
txtZahl = new JTextField();
txtZahl.setBounds(134, 85, 146, 26);
txtZahl.setColumns(10);
}
return txtZahl;
}
private JLabel getLblGanzeZahl() {
if (lblGanzeZahl == null) {
lblGanzeZahl = new JLabel("ganze zahl");
lblGanzeZahl.setBounds(15, 88, 115, 20);
}
return lblGanzeZahl;
}
private Liste getListe(){
if(liste == null){
liste = new Liste(3);
}
return liste;
}
private JList getList(){
if(list == null){
list = new JList(liste);
// oder: list.setModel(getListe());
list.setBounds(191, 137, 89, 70);
}return list;
}
private JButton getBtnSpeichern() {
if (btnSpeichern == null) {
btnSpeichern = new JButton("speichern");
btnSpeichern.setBounds(25, 134, 115, 29);
btnSpeichern.addActionListener(e-> {
liste.add(Integer.parseInt(txtZahl.getText()));
});
}
return btnSpeichern;
}
}
Zuletzt bearbeitet von einem Moderator: