DasBoeseLebt
Lieutenant
- Registriert
- Jan. 2010
- Beiträge
- 687
GenK schrieb:@dasböselebt: wenn ich jetzt alle JLabels und einer Liste speicher(die global in der klasse verwaltung existiert). und dann von der Liste auf das JPanel speicher(und das wird dann wieder im Container gespeichert). wenn ich dann den Listeneintrag ändere. Verändert sich dann überhaupt das JLabel was angezeigt wird?
Klar, warum sollte es sich nicht ändern können?
Code:
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Test extends JFrame implements ActionListener {
public static void main(String[] args) {
Test t = new Test();
}
// ***************************
// ***************************
private Vector<JLabel> vl = new Vector<JLabel>();
private GridBagConstraints cons = new GridBagConstraints();
public Test() {
this.setSize(200, 200);
init();
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private void init() {
this.setLayout(new GridBagLayout());
cons.gridy = 0;
JButton b = new JButton("Pressen bitte");
b.addActionListener(this);
this.add(b, cons);
cons.gridy++;
vl.add(new JLabel("1"));
this.add(vl.get(0), cons);
this.pack();
}
@Override
public void actionPerformed(ActionEvent e) {
vl.add(new JLabel("Neues Label; " +vl.size()));
cons.gridy++;
this.add(vl.get(vl.size()-1), cons);
this.setSize(this.getWidth(), this.getHeight()+20);
for(int i = 0;i < vl.size();i++){
vl.get(i).setText(vl.get(i).getText() + "1");
}
}
}
Wie du siehst, drück ich den Button und alles ändert sich. Zwar nicht schön der Code, aber er erfüllt hier seinen Zweck.
Oder hab ich dein Anliegen falsch verstanden?
Zuletzt bearbeitet: