Hi!
Bestimmt habe ich einen ganz banalen Fehler gemacht - aber ich finde ihnen nicht.
Vielleicht kann mir ja jemand helfen?! ???:L
Folgendes Programm verdeutlicht mein Problem:
Es werden auf knopfdruck neue Daten erzeugt, die dann in einer JList (aktualisiert natürlich) dargestellt werden sollen!
Danke,
Manu
Bestimmt habe ich einen ganz banalen Fehler gemacht - aber ich finde ihnen nicht.
Vielleicht kann mir ja jemand helfen?! ???:L
Folgendes Programm verdeutlicht mein Problem:
Code:
/*
* Created on 15.07.2006
*/
package gui;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListModel;
public class Fehler extends JFrame
{
private JPanel panel;
private JScrollPane jScrollPane;
private JButton neuBtn;
private JList jlist;
private String[] werte;
public static void main(String[] args)
{
Fehler f = new Fehler();
f.init();
f.setVisible(true);
}
private void init()
{
this.setSize(200, 200);
//erzeuge irgendwelche werte
erzeugWerte();
panel = new JPanel();
BorderLayout panelL = new BorderLayout();
panel.setLayout(panelL);
jScrollPane = new JScrollPane();
machListe();
neuBtn = new JButton("Neue Zahlen");
panel.add(neuBtn, BorderLayout.SOUTH);
neuBtn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//Irgendeine Methode erzeugt neue Werte, die dann in der JList
// angezeit werden sollen
erzeugWerte();
//Diese müssen dann natürlich auch sichtbar werden...
//lösche den Inhalt des ScrollPane
jScrollPane.removeAll();
//und setze eine neue liste drauf!
machListe();
validate();
}
});
this.getContentPane().add(panel, BorderLayout.CENTER);
panel.add(neuBtn, BorderLayout.SOUTH);
panel.add(jScrollPane, BorderLayout.CENTER);
}
private void erzeugWerte()
{
werte = new String[(int)(Math.random() * 20)];
for (int i = 0; i < werte.length; i++)
{
werte[i] = "" + (Math.random() * 33);
}
}
private void machListe()
{
jlist = new JList();
ListModel listModel = new DefaultComboBoxModel(werte);
jlist.setModel(listModel);
jScrollPane.add(jlist);
jScrollPane.setViewportView(jlist);
}
}
Es werden auf knopfdruck neue Daten erzeugt, die dann in einer JList (aktualisiert natürlich) dargestellt werden sollen!
Danke,
Manu