Hallo zusammen.
Ich habe eine "Maske" erstellt, die ein Panel (heißt bei mir Knoten) hinzufügt (oder entfernt), wenn man auf den entsprechenden Button klickt.
Dieses Panel besteht aus einer Nummer (wird automatisch hoch bzw runtergezählt), einer Combobox, und zwei TextFields.
die Combobox funktioniert super mit dem ActionListener. Aber jedes Mal wenn ich in einem der beiden Textfields eine Eingabe mache und Enter drücke, kommt eine Nullpointer exception. (Sobald ich das Textfield mit XY.getText(); anspreche)
Frage1: Woran liegts und wie kann ichs lösen?
Frage 2: Angenommen ich habe mehrere Panels (mit also mehr als 2 Textfields und Comboboxen) erzeugt (diese werden in einem Array gespeichert), (wie) kann ich dann für jedes Panel "manuell" die Action Events auslösen? Dies sollte passieren, wenn ich einen weiteren Button drücke.
Hier ein paar Codeschnipsel die es denk ich brauch um das Problem zu lösen:
private JTextField name;
private JTextField links;
private final int mynumber;
public static ArrayList<String> formen= new ArrayList(100);
public static ArrayList<String> namen= new ArrayList();
public static ArrayList<String> verbindungen= new ArrayList(100);
!!Hinweis: Vorsicht! Ich habe also ein Array das nameN heißt und ein Textfield das name heißt...
Definieren der Boxen etc
ich hoffe das Reicht um meine Frage zu beantworten :/
Ich habe eine "Maske" erstellt, die ein Panel (heißt bei mir Knoten) hinzufügt (oder entfernt), wenn man auf den entsprechenden Button klickt.
Dieses Panel besteht aus einer Nummer (wird automatisch hoch bzw runtergezählt), einer Combobox, und zwei TextFields.
die Combobox funktioniert super mit dem ActionListener. Aber jedes Mal wenn ich in einem der beiden Textfields eine Eingabe mache und Enter drücke, kommt eine Nullpointer exception. (Sobald ich das Textfield mit XY.getText(); anspreche)
Frage1: Woran liegts und wie kann ichs lösen?
Frage 2: Angenommen ich habe mehrere Panels (mit also mehr als 2 Textfields und Comboboxen) erzeugt (diese werden in einem Array gespeichert), (wie) kann ich dann für jedes Panel "manuell" die Action Events auslösen? Dies sollte passieren, wenn ich einen weiteren Button drücke.
Hier ein paar Codeschnipsel die es denk ich brauch um das Problem zu lösen:
private JTextField name;
private JTextField links;
private final int mynumber;
public static ArrayList<String> formen= new ArrayList(100);
public static ArrayList<String> namen= new ArrayList();
public static ArrayList<String> verbindungen= new ArrayList(100);
!!Hinweis: Vorsicht! Ich habe also ein Array das nameN heißt und ein Textfield das name heißt...
Definieren der Boxen etc
Java:
mynumber=getCounter();
JComboBox Knotenform = new JComboBox(KnotenForm);
Knotenform.setSelectedIndex(0);
Knotenform.addActionListener(this);
Knotenform.setActionCommand("Knotenform");
JTextField name= new JTextField(10);
name.setText("Enter Name");
name.addActionListener(this);
name.setActionCommand("Name");
JTextField links= new JTextField(20);
links.setText("Enter Linking-Number");
links.addActionListener(this);
links.setActionCommand("Verbindung");
formen.add(mynumber, "none");
namen.add(mynumber, "none");
verbindungen.add(mynumber, "");
Java:
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Knotenform")){
JComboBox cb = (JComboBox)e.getSource();
String Knotenform = (String)cb.getSelectedItem();
if (Knotenform.equals("--Please Choose Knode Format--")){
System.out.println("Nothing chosen");
formen.add(mynumber, "none");
}
if (Knotenform.equals("rectangular")){
//System.out.println("rectangular");
formen.add(mynumber, "rectangular");
System.out.println(mynumber + formen.get(mynumber));
}
if (Knotenform.equals("round")){
//System.out.println("round");
formen.add(mynumber, "round");
System.out.println(mynumber + formen.get(mynumber));
}
}
if (e.getActionCommand().equals("Name")){
String bla= name.getText();
namen.add(mynumber, bla);
System.out.println(mynumber + namen.get(mynumber));
}
if (e.getActionCommand().equals("Verbindung")){
System.out.println(links.getText());
verbindungen.add(mynumber, links.getText());
}
}
ich hoffe das Reicht um meine Frage zu beantworten :/
Zuletzt bearbeitet von einem Moderator: