Hi Alle,
hoffe der Titel ist korrekt gewählt.
Ich versuche, ein MVC-basiertes GUI zu erstellen und habe dabei Probleme, die if-Abfrage im ActionListener zu gestalten. Vielleicht kann mir jemand helfen? Das Ganze ist wie folgt aufgebaut:
View:
Controller:
Ich will also letztendlich in der ComboListener.java so etwas abfragen wie
Das geht aber natürlich nicht, wenn ich den Variablennamen gar nicht übergeben bekomme. Andererseits soll ComboListener natürlich auch für andere JComboBoxes zur Verfügung stehen, so dass ich nicht ohne if-Abfrage arbeiten kann.
Hat jemand eine Idee? Ich habe ein Brett vor'm Kopf.
Bzw. vielleicht ist die Frage: (wie) kann ich den Variablennamen mit übergeben ohne dass ich alle Konstruktoren der Klassen anpassen muss, damit die aktuelle Instanz der View-Klasse übergeben werden kann?
Danke!
Grüße,
B13
hoffe der Titel ist korrekt gewählt.
Ich versuche, ein MVC-basiertes GUI zu erstellen und habe dabei Probleme, die if-Abfrage im ActionListener zu gestalten. Vielleicht kann mir jemand helfen? Das Ganze ist wie folgt aufgebaut:
View:
Java:
// ControlForms.java
...
private JPanel createSearchPanel() throws SQLException {
...
comboBoxCode = new JComboBox(); // Klassenvariable comboBoxCode -> JComboBox
SwingUtilities.invokeLater(new Runnable() {
public void run() {
AutoCompleteSupport<Object> support = AutoCompleteSupport.install(comboBoxCode, GlazedLists.eventListOf(jnlCodeArray));
}
}); // Auto-Complete comboBox aus GlazedLists
...
public void setComboListener(ComboListener comboListener) {
comboBoxCode.addActionListener(comboListener);
}
...
Controller:
Java:
// Controller.java
public Controller() throws SQLException{
...
addListeners();
}
private void addListeners(){
getView().setExitListener(new ExitListener());
getView().setTreeListener(new TreeListener(getView()));
getView().getFormPanel().setButtonListener(new ButtonListener());
getView().getFormPanel().setComboListener(new ComboListener());
}
Java:
// ComboListener.java
public class ComboListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println(e.toString()); // Gibt keine Variablennamen mit aus...
}
}
Ich will also letztendlich in der ComboListener.java so etwas abfragen wie
Java:
if (e.getSource() == comboBoxCode) ...
Hat jemand eine Idee? Ich habe ein Brett vor'm Kopf.
Bzw. vielleicht ist die Frage: (wie) kann ich den Variablennamen mit übergeben ohne dass ich alle Konstruktoren der Klassen anpassen muss, damit die aktuelle Instanz der View-Klasse übergeben werden kann?
Danke!
Grüße,
B13
Zuletzt bearbeitet: