Hallo zusammen,
ich möchte gern meine View von meiner Logik besser trennen. Was ich versuche ist: die Eingabewerte erst in einer anderen Klassen zu lesen.
Beispiel:
Die Klasse View, in der der Benutzer eine PLZ oder Orsteinagbe eingibt und anschließen mit dem "Okey"-Button bestätigt.
Der Okey-Button hat einen ActionListener, der auf die Klasse Controller (implementiert actionPerformed())) verweist. Mein Vorhaben wäre nun, in actionPerfored() die Eingabe des JTextFields mit getText() auszulesen.
Wie ist es Möglich, das Auslesen in eine andere Klasse (In meinem Fall Controller) auszulagern?
ich möchte gern meine View von meiner Logik besser trennen. Was ich versuche ist: die Eingabewerte erst in einer anderen Klassen zu lesen.
Beispiel:
Die Klasse View, in der der Benutzer eine PLZ oder Orsteinagbe eingibt und anschließen mit dem "Okey"-Button bestätigt.
PHP:
package view;
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import controller.Controller;
public class View {
private MyTextField textfield=new MyTextField();
public View() {
JFrame frame=new JFrame("Wetterstation");
Container con=frame.getContentPane();
con.setLayout(new BorderLayout());
con.add(textfield, BorderLayout.NORTH);
con.add(new MyButton(), BorderLayout.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
}
public static void main(String[] args) {
new View();
}
}
class MyTextField extends JTextField{{
setText("Ort oder Postleitzahl eingeben");
}}
class MyButton extends JButton{
public MyButton() {
//verweis der Behandlung auf die Klasse Controller
addActionListener(new Controller());
setText("okey");
}
}
Der Okey-Button hat einen ActionListener, der auf die Klasse Controller (implementiert actionPerformed())) verweist. Mein Vorhaben wäre nun, in actionPerfored() die Eingabe des JTextFields mit getText() auszulesen.
PHP:
package controller;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JTextField;
public class Controller implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
//hier möchte ich nun mit .getText() auf die Eingabe
//des JTextField zugreifen
//....
//weiterer Verweis auf das Modell
}
}
Wie ist es Möglich, das Auslesen in eine andere Klasse (In meinem Fall Controller) auszulagern?