swing og "dynamisk" JPanel
HejsaJeg vil have et JPanel, hvor det er muligt vha. en knap, at tilføje tekstfelter. Min ide er at have en Vector med JTextfield, og hver gang man trykker på knappen, indsættes et nyt JTextField i vektoren, og JPanel'et, der indeholder alle JTextFields opdateres. Dette gøres i en JFrame. Men jeg kan ikke få det til at virke. Jeg har følgende kode:
public class AttributesFrame extends JFrame implements ActionListener {
private Vector<JTextField> _attributes = new Vector<JTextField>();
JPanel _attributesPanel;
JButton _addBtn;
public AttributesFrame() {
super("Title");
init();
setSize(new Dimension(200,200));
this.setVisible(true);
}
private void init() {
JPanel main = new JPanel();
_attributesPanel = new JPanel();
_attributesPanel.setLayout(new RiverLayout());
JPanel buttonPanel = new JPanel();
_addBtn = new JButton("Add");
_addBtn.addActionListener(this);
buttonPanel.add(_addBtn);
main.add(_attributesPanel);
main.add(buttonPanel);
getContentPane().add(main);
}
private void update() {
_attributesPanel.removeAll();
for (JTextField field : _attributes) {
_attributesPanel.add("br",field);
}
repaint();
}
public void actionPerformed(ActionEvent action) {
if (action.getActionCommand().equals("Add")) {
_attributes.add(new JTextField("New attribute"));
}
update();
}
}
Mine textfields bliver tilføjet vektoren, men de kommer ikke frem. De kommer, hvis jeg resizer framen, men burde det ikke kalde den samme repaint(), som jeg kalder?!?!
Al hjælp er cool!
