MVC - gui auslagern

  • Themenstarter Themenstarter MisterX
  • Beginndatum Beginndatum
M

MisterX

Gast
Moin, Moin,

ich brauche Rat und Hilfe.
Wir sollen nach dem MVC-Modell eine Gui erstellen. Das funktioniert soweit.
Jetzt möchte ich die verschiedenen Panels in eigene Klassen auslagern. Und da hört mein
Verständnis auf.


Hier ist meine Klasse für die Gui

Java:
public class View extends JFrame {
...
public View() {
...
pNeu = new JPanel();
		pNeu.setLayout(null);
		pNeu.setBounds(5, 40, 1000, 465);
		NeuerDatensatz neuDaten = new NeuerDatensatz();
		pNeu.add(neuDaten);
		pNeu.setVisible(true);
		this.c.add(pNeu);
...


Hier ist meine Klasse für ein Panel:
Java:
public class NeuerDatensatz extends JPanel {
	
	private JLabel lblNeu;
	
	public NeuerDatensatz() {
		lblNeu = new JLabel("Neu: ");
		lblNeu.setFont(new Font("Arial", Font.PLAIN, 16));
		lblNeu.setBounds(260, 120, 300, 30);
		
		this.setLayout(null);
		this.setBounds(5, 40, 1000, 465);
		this.setBackground(new Color(20, 150, 90));
		this.setVisible(true);
		this.add(lblNeu);
	}

Angezeigt wird das alles. Dem Panel muss ich jetzt noch Get- und Set Methoden zum Befüllen bzw. Abfragen von Feldern hinzufügen. Diese sollte ich später aus einer Controllerklasse abfragen und befüllen können. Und das ist mein Problem. Wie mache ich das, das ich aus einer anderen Klasse an die Daten komme?
 
Wie wäre es wenn du die Daten, die du brauchst in Variablen schreibst und für diese Getter und Setter schreibst?

Oder (nicht wirklich elegant) das Aufrufen direkt aus der Gui raus:

Java:
public String getFeldwertEins() {
     textfield.getText();
}

public void setFeldwertEins(String text) {
     textfield.setText(text);
}

Und in deiner Controlller-Klasse dann so:

Java:
meinFenster.setFeldwertEins("Hiho");
System.out.println(meinFenster.getFeldwertEins()); //<--- Hiho
 
Angezeigt wird das alles. Dem Panel muss ich jetzt noch Get- und Set Methoden zum Befüllen bzw. Abfragen von Feldern hinzufügen. Diese sollte ich später aus einer Controllerklasse abfragen und befüllen können. Und das ist mein Problem. Wie mache ich das, das ich aus einer anderen Klasse an die Daten komme?

Indem du ein Objekt der Controller-Klasse erstellst, in der Klasse, die die Daten hinzufügt und wieder entfernt und die Methoden einfach aufrufst.
 

Neue Themen


Zurück
Oben