Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hab hier n ziemlichen Anfänger fehler und bekomms einfach nicht gebacken n Textfeld zu einer Arraylist hinzuzufügen. :/
[Java] static List<JTextField> qualifikationent = new ArrayList<JTextField>();
[/code]
das ist meine ArrayList.. ich brauche Textfelder welche ich mit einem Button dann jeweils hinzufüge ( baue ich danach ein ... ) .. aber ich bekomms einfach nicht gebacken dass ich die Textfelder der ArrayList hinzufüge... :/
Eine Variable deswegen als static zu deklarieren ist zum Einen nicht schön und zum Anderen gefährlich, da du damit die Variable von der Instanz ihrer Klasse abkoppelst.
Ich empfehle dir sie entweder als "final" zu deklarieren wenn sie zur Laufzeit nicht neu initialisiert wird, oder einfach eine public Getter-Methode zu schreiben.
Hier mal ein Beispiel:
Java:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class ArrayListTest extends JFrame {
private final List<JTextField> qualifikationent = new ArrayList<JTextField>();
private final JLabel label;
private final JButton button;
public ArrayListTest() {
setLayout(new FlowLayout());
this.button = new JButton("add");
this.button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// der direkte Zugriff funktioniert wenn die Variable "final" ist.
// allerdings darf diese Variable zur Laufzeit nicht neu initialisiert werden.
qualifikationent.add(new JTextField());
// auf eine public get Methode darf auch die innerClass zugreifen
label.setText("" + getQualifikationent().size());
validate();
}
});
add(button);
this.label = new JLabel();
this.label.setText("" + qualifikationent.size());
add(label);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // has to be called after pack() !!!!!
setVisible(true);
}
public List<JTextField> getQualifikationent() {
return qualifikationent;
}
public static void main(String[] args) {
new ArrayListTest();
}
}