Hallo Zusammen,
wie in der Abbildung zu sehen ist, wird innerhalb der grafischen Oberfläche eine Liste angezeigt. Diese Liste befindet sich innerhalb eines scrollpanes.
Mein Vorhaben:
Sobald der Anwender auf den Button klickt, soll der Inhalt der Liste ausgetauscht werden.
Mein Problem:
Nachdem der Anwender den Button gedrückt hat, wird die alte Liste entfernt. Die neue Liste wird jedoch nicht angezeigt!
Was mache ich falsch?
Schöne Grüße,
Michael
Beispiel:
wie in der Abbildung zu sehen ist, wird innerhalb der grafischen Oberfläche eine Liste angezeigt. Diese Liste befindet sich innerhalb eines scrollpanes.
Mein Vorhaben:
Sobald der Anwender auf den Button klickt, soll der Inhalt der Liste ausgetauscht werden.
Mein Problem:
Nachdem der Anwender den Button gedrückt hat, wird die alte Liste entfernt. Die neue Liste wird jedoch nicht angezeigt!
Was mache ich falsch?
Schöne Grüße,
Michael
Beispiel:
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class Test implements ActionListener {
JFrame frame;
JPanel mainPanel;
JButton button;
JList list;
JScrollPane scrollPane;
String data1[] = { "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item", "Item" };
String data2[] = { "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti", "Meti" };
public Test() {
frame = new JFrame();
frame.setMinimumSize(new Dimension(500, 00));
mainPanel = new JPanel();
mainPanel = new JPanel(new BorderLayout());
list = new JList(data1);
scrollPane = new JScrollPane(list);
button = new JButton("change liste");
button.addActionListener(this);
mainPanel.add(scrollPane, BorderLayout.CENTER);
mainPanel.add(button, BorderLayout.SOUTH);
frame.add(mainPanel);
frame.setLocationRelativeTo(null);
frame.setSize(frame.getPreferredSize());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.pack();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
list = new JList(data2);
// die alte Liste entfernen
scrollPane.remove(0);
scrollPane.setBackground(Color.RED);
// neue Liste durch die alte ersetzen
scrollPane.add(list, 0);
// scrollpane neu rendern
scrollPane.repaint();
// einfach so. keine ahnung, obs was bringt
mainPanel.repaint();
}
}
public static void main(String[] args) {
Test test = new Test();
}
}