JTextField mit Model kommunizieren

Status
Nicht offen für weitere Antworten.

zickzack0312

Mitglied
Hallo,

mit Hilfe von Freunden habe ich endlich ein Model und entsprechenden JTree nach MVC-Pattern implementiert, wobei in dem Model nur JavaBeans enthält wie z.B:
Code:
public class Model {
private String names;
..........................
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
.............................
}}

und bei "View" habe ich entsprechende JTextFields implementiert. Nun ist das Problem, ich weiss nicht, wie die Eingabe Felder mit dem Model(eventuell durch "Controller") kommunizieren können, woher weiss das Model, dass die Daten schon in JTextFields eingegeben worden sind. Kann jemand mir drüber erklären? Am Besten mit Beispiel.
Dank im voraus.
 
Du darfst die Daten des Models ausschließlich über das Model selbst manipulieren. Nachdem Daten im Model verändert wurden, mußt du einen Event abfeuern, um die registrierten Views über Änderungen zu benachrichtigen.

Benutz mal die Suche im Forum.
 
ich habe in Forum mit MVC durchgesucht und einige Sachen gelesen, aber bin immer noch nicht ganz klar mit z.B wie das View in Model registiert wird, und wie die Eingabedaten von View in Model gespeichert werden können usw. Kannst du mir wahrscheinlich ein einfacheres Beispiel geben?
 
meine Frage wären:

1. ich habe viel gelesen, und fast bei allen Beispielen sind "Observer" benötigt, um Model-View-Control zu ommunizieren, ist es wirklich vorteilhaft?

2. bei meinem Programm können die Eingabedaten problemlos in das Model gesperchert werden(ohne Listener einzusetzen). Problem ist, ich habe für mein Model ein AdapterTreeModel bzw. ein JTree in View implementiert, d.h. der JTree zeigt die Struktur meines Modells, und die Eingabefelder bzw. ihre Panel sollen nur durch JTree aktualisiert werden. z.B:

Im Model
Code:
public class Model {
	private List authors;
  ...................................
public void addAuthor(Person author){...}
public void removeAuthor(Person author){...}
public List getAuthors() {...}
public void setAuthors(List authors) {...}
}

public class Person {
private String name;
.................
public String getName() {
	return Name;
	}
public void setName(String name) {
	this.name = name;
        }
..................
}

Im Jtree
Code:
+----Authors
     |----Name_1
     |----Name_2

Im View
Code:
class JP extends JPanel{
private JTextField jtf1;
.....................
JP(){
jtf1 = new JTextField();   //name eingeben
......................
}}

Wenn ich auf Name_1 anklicke, soll es JP und seinen JTextField zeigen. Das soll ich rein in View implementieren oder einen Listener in Model setzen, der den View abhört? und wie?
 
Du mußt im JTree einen TreeSelectionListener implementieren und dann die Werte des selektierten Eintrags dem JTextfield zuweisen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben