MainFrame aktualisieren und Componenten Löschen

woody100

Mitglied
Hallo Leute!

Ich habe wiedermal ein Problem! Folgendes!
Ich habe eine gewisse Anzahl von Strings in einer ArrayList gespeichert! Diese gebe ich nun in einer MainFrame(JFrame) jeweils in Form eines JTextFields aus. Hierfür gehe ich eine for schleife durch und erstelle immer wieder ein JTextField mit selben Namen nur füge ich es mit einem anderen Layout ein(gridx = 2,3,4,...)!
Wenn ich nun diese Funktion mit einer anderen ArrayList aufrufe, die weniger Elemente enthält, möchte ich, dass zu erst die alten JTextFields gelöscht werden und die neuen wieder neu eingefügt werden!

Ich habe schon probiert die TextFields in einem Array zu speichern und dann mittels this.remove(list(f)) die gesamte liste durchzugehen und zu löschen.. leider vergebens! Kann mir bei diesem Problem bitte jemand helfen?

Danke, Harry!

Hier noch der QuellText, so wie ich ihn habe, der aber leider nicht funktioniert!, in der Methode Load stecken die schwierigkeiten!

public class MainFrame extends JFrame implements ActionListener
{
FillDB.WhenChange wc = new FillDB.WhenChange();
ArrayList<Linie> lineList = new ArrayList<Linie>();
JButton load = new JButton("Load Umbauplan");
JLabel Linie = new JLabel("Linie");
JLabel SAP = new JLabel("SAP-Nr.");
JLabel KW = new JLabel("KW");
JLabel Schnitt = new JLabel("Schnitt");
JLabel Prozent = new JLabel("Verlust in %");
JLabel Laufzeit = new JLabel("Laufzeit");
JLabel Bedarf = new JLabel("Bedarf in Mio");
JLabel Datum = new JLabel("Datum");
JTextField Linie1;
JButton SAP1;
JTextField KW1;
JTextField Schnitt1;
JTextField Prozent1;
JTextField Laufzeit1;
JTextField Bedarf1;
JTextField Datum1;
JTextField chooseKW;
GridBagConstraints con;
boolean change = false;
int i;

public MainFrame() throws FileNotFoundException, IOException
{
this.setTitle("Vetropack - Materialberechnung");
this.setSize(900, 400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new GridBagLayout());
chooseKW = new JTextField("KW eingeben");
con = new GridBagConstraints();
con.insets = new Insets(0,5,10,30);
con.gridx = 1;
con.gridy = 1;
this.add(chooseKW, con);
con.gridx = 2;
con.gridy = 1;
load.addActionListener(this);
this.add(load,con);
con.gridx = 1;
con.gridy = 2;
this.add(Linie, con);
con.gridx = 2;
this.add(SAP, con);
con.gridx = 3;
this.add(KW, con);
con.gridx = 4;
this.add(Schnitt, con);
con.gridx = 5;
this.add(Prozent, con);
con.gridx = 6;
this.add(Laufzeit, con);
con.gridx = 7;
this.add(Bedarf, con);
con.gridx = 8;
this.add(Datum, con);
this.setVisible(true);
}

public void Load(String KW) throws FileNotFoundException, IOException
{
ArrayList<JTextField> txtlist = new ArrayList<JTextField>();
ArrayList<JButton> butlist = new ArrayList<JButton>();
i = 3;
wc.Access(KW);
lineList = wc.getList();

if(change == true)
{
for(JTextField f : txtlist)
this.remove(f);
for(JButton b : butlist)
this.remove(b);
}
for (Linie li : lineList)
{
con.gridx = 1;
con.gridy = i;
Linie1 = new JTextField();
Linie1.setText(String.valueOf(li.getLinie()));
txtlist.add(Linie1);
this.add(Linie1, con);
con.gridx = 2;
con.gridy = i;
SAP1 = new JButton();
SAP1.addActionListener(this);
SAP1.setActionCommand(String.valueOf(li.getSAP()));
SAP1.setText(String.valueOf(li.getSAP()));
butlist.add(SAP1);
this.add(SAP1, con);
con.gridx = 3;
con.gridy = i;
KW1 = new JTextField();
KW1.setText(String.valueOf(li.getKW()));
txtlist.add(KW1);
this.add(KW1, con);
con.gridx = 4;
con.gridy = i;
Schnitt1 = new JTextField();
Schnitt1.setText(String.valueOf(li.getSchnitt()));
txtlist.add(Schnitt1);
this.add(Schnitt1, con);
con.gridx = 5;
con.gridy = i;
Prozent1 = new JTextField();
Prozent1.setText(String.valueOf(li.getProzent()));
txtlist.add(Prozent1);
this.add(Prozent1, con);
con.gridx = 6;
con.gridy = i;
Laufzeit1 = new JTextField();
Laufzeit1.setText(String.valueOf(li.getLaufzeit()));
txtlist.add(Laufzeit1);
this.add(Laufzeit1, con);
con.gridx = 7;
con.gridy = i;
DecimalFormat df = new DecimalFormat("#####.###");
Bedarf1 = new JTextField();
Bedarf1.setText(String.valueOf(df.format(li.getBedarf())));
txtlist.add(Bedarf1);
this.add(Bedarf1, con);
con.gridx = 8;
con.gridy = i;
Datum1 = new JTextField();
Datum1.setText(li.getDatum());
txtlist.add(Datum1);
this.add(Datum1, con);
this.setVisible(true);
i++;
}
change = true;
}

@Override
public void actionPerformed(ActionEvent ev)
{
if (ev.getSource() == load)
try
{
this.Load(this.chooseKW.getText());
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
 
Zurück