Hi,
ich möchte dynamisch Objekte erzeugen, dafür habe ich eine eigene kleine Klasse zum experimentieren angelegt. Allerdings kommt beim erzeugen des Objekts eine Exeption.
Was mache ich Falsch?
In meiner Klasse ist ein Frame dem ein Panel hinzugefügt wird, dabei werden dem Panel noch ein Button hinzugefügt. In dem Listener von dem Button wird eine Methode aufgerufen die die JLabel Objekte erstellt.
ich möchte dynamisch Objekte erzeugen, dafür habe ich eine eigene kleine Klasse zum experimentieren angelegt. Allerdings kommt beim erzeugen des Objekts eine Exeption.
Was mache ich Falsch?
Java:
package test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class Test3 {
static JButton button;
static JFrame frame;
static JPanel panel;
static ArrayList<JLabel> labelArray;
public static void main(String[] args){
frame = new JFrame();
frame.setSize(200,300);
panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
button = new JButton("Create new Label");
panel.add(button);
frame.add(panel);
frame.setVisible(true);
listener();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
private static void listener(){
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
newLabel();
int count = labelArray.size();
frame.removeAll();
frame.add(button);
do{
frame.add(labelArray.get(count));
count --;
}while(count == 0);
}
});
}
private static void newLabel(){
int count = 1;
labelArray.add(new JLabel("Test" + count));
count++;
}
}
In meiner Klasse ist ein Frame dem ein Panel hinzugefügt wird, dabei werden dem Panel noch ein Button hinzugefügt. In dem Listener von dem Button wird eine Methode aufgerufen die die JLabel Objekte erstellt.