Wie funktioniert :Wert von TextField auslesen damit ich JSON übergebe(JAVAFX)?

Hallo Leute,

ich möchte von TextField Daten auslesen. ich weiß dass mit geText() das funktioniert , aber ich muss das irgendwie abspeichern damit ich auf JSON übergebe. Oder brauche ich das nicht? Vor allem brauche ich das bei Password , retype, birthday(da nur die Zahlen sein sollen). kann ich so machen wie ich unten bei Passwort habe? also wenn die Übereinstimmen kann man in JSON übergeben?

soll ich vielleicht alle Werte zuerst so auslesen und dann überprüfen?
String inputUsername = username.getText(); //innerhalb der save.setOnAction()

public class RegisterOwnerController implements Initializable {

    @FXML 
    private TextField username;
    
    @FXML 
    private PasswordField password;
    
    @FXML 
    private PasswordField retype;
    
    @FXML 
    private TextField name;
    
    @FXML 
    private TextField familyname;
    
    @FXML 
    private TextField day;

    @FXML 
    private TextField month;
    
    @FXML 
    private TextField year;
    
    @FXML 
    private TextField adress;
    
    @FXML 
    private TextField email;
    
    @FXML 
    private TextField phonenumber;
    
    @FXML 
    private Button save;
    
    @FXML 
    private Button clear;
    
  
    

    @Override // This method is called by the FXMLLoader when initialization is complete
    public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
    	  save.setOnAction(new EventHandler<ActionEvent>() {

              @Override
              public void handle(ActionEvent event) {
            	  
            	  
            	   if(!password.getText().equals(retype.getText())){
            		  //FEHLER
            	  }else{
                           // in JSON Speichern?
                      }

            	  /*
            	   * JSONObject json = new JSONObject();
            	   * json.putString("username", "");
            	   * ...
            	   */
            	
            	  
              }
          });
    	  clear.setOnAction(new EventHandler<ActionEvent>() {

              @Override
              public void handle(ActionEvent event) {
            	  username.setText("");
              }
          });
    }
}

bitte haltet mich noch ein Jahr aus und dann bin ich wahrscheinlich besser und frage nicht mehr so viel

Danke euch

gibt es keine User-Klasse mit normalen Attributen?
dort könnte alles rein, um es handlicher herumzureichen, falls benötigt

die Frage a la ‘in JSON schon bei richtigen Passwort speichern oder erst Felder überprüfen’ ist zu individuell,
da kannst du doch einfach überlegen wie DU es haben willst, das ist eh das einzige was zählt, und danach vorgehen,

teste so oder so auch mit Fehlern in Feldern usw., Arbeitsablauf ok?

[quote=SlaterB]gibt es keine User-Klasse mit normalen Attributen?
dort könnte alles rein, um es handlicher herumzureichen, falls benötigt[/quote]
ja ich habe Owner.java klasse . konntest du lieb sein und mir zeigen wie bei username funktionieren wurde ?

@Table(name = "OWNER")
public class Owner extends Customer {
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "owner")
	@Column(name = "VEHICLES")
	private List<Vehicle> vehicle = new ArrayList<Vehicle>();
	
	public Owner(String username, String password, Date regDate,
			String familyname, String name, Date birthday, String adress,
			String email, String telnumber) {
		super(username, password, regDate, familyname, name, birthday, adress,
				email, telnumber);

	}

	public Owner() {
		super("", "", null, "", "", null, "", "", "");
	}

	public List<Vehicle> getVehicle() {
		return vehicle;
	}

	public void setVehicle(List<Vehicle> vehicle) {
		this.vehicle = vehicle;
	}

}

Wird vielleicht so funktionieren?```
@FXML
private TableView ownerTable;
@FXML
private TableColumn<Owner, String> firstNameColumn;
@FXML
private TableColumn<Owner, String> lastNameColumn;

wie soll was funktionieren?
meine Aussage war, dass, falls es dir hilft, du ein Owner-Objekt erstellen sollst und den usernamen wie wo auch immer aus einem Textfeld holst
und mit z.B. setUsername() im User/ Owner ablegst,
keine dramatische Sache oder? :wink: nur auf anfangs ‚aber ich muss das irgendwie abspeichern damit ich auf JSON übergebe‘ bezogen
→ alles in einen Owner rein, damit du damit die Daten transportieren kannst oder was immer dir irgendwo hilft


        super("", "", null, "", "", null, "", "", "");
    }

du hast einen leeren Owner-Konstruktor, aber keinen in Customer?
wenn doch wäre das hier recht handlich, dann nur super(); oder was auch immer

meinst du so?

            	  owner.setUsername(username.getText());

           //ich habe noch nicht genau angeschaut wie in JSON funktioniert aber konnte parameterübergabe so funktionieren owner.getUsername() in //json?
            JSONObject json = new JSONObject();
             json.putString("username", owner.getUsername());
            	  ```

Customer hat keinen Leeren Konstruktor. In Owner habe ich mal den Leeren Konstruktor auch gebraucht
 
```public Customer(String username, String password, Date regDate,
			String familyname, String name, Date birthday, String adress,
			String email, String telnumber)```

über den Stand, alles in Owner hineinzubringen hinaus habe ich mir noch keine Meinung gebildet,
aber deine Darstellung meiner Meinung soll mir recht sein, ja

“aber konnte parameterübergabe so funktionieren owner.getUsername() in json?”
bedenkliche Frage, was hast du denn an Alternativen?
JSON erstmal ohne GUI mit Dummy-Daten testen

putString verlangt einen String, jede Art von String ist gleich gut, es gibt ja nur eine Art,
wenn getUsername() einen String liefert dann ist das ein String, fertig,

da stecken ein paar Gedanken dahinter die als Grundlage bekannt sein sollten,
wird wahrscheinlich kaum irgendwo thematisiert weil eigentlich selbstverständlich,

da braucht es schon Querdenker um Unterschiede zu vermuten, ein String aus einer Methode ist nichts anderes als einer aus z.B. einer Variablen,
der String wurde für das Textfeld irgendwo in String einmal zusammengebaut, in Textfeld bzw. dessen Model abgelegt, über diverse get-Methoden bereits transportiert,
ob in einer lokalen Variablen irgendwo oder in einem Attribut von Owner danach und noch mehr beteiligte Methoden, das tut nicht viel zu Sache,
es bleibt immer ein String, ein Objekt…