Ich habe foglenden Code:
Wie kann ich jetzt den eingebenen Text in den TextAreas abfragen/abholen. Ich komme nicht darauf.
Für eine Idee wäre ich echt dankbar.
Java:
package netthor.checkup;
import java.util.ArrayList;
import java.util.List;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class FXAntwortZeile extends Application {
int zaehler = 2;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage primaryStage) {
primaryStage.setTitle("CheckUP");
final StackPane root = new StackPane();
final VBox boxAntworten = new VBox();
final VBox xboxZeile = new VBox();
xboxZeile.getChildren().add(fragenzeile(1));
xboxZeile.getChildren().add(fragenzeile(2));
Button btAnwortZufuegen = new Button("Antwort zufügen");
final Button btAnwortLoeschen = new Button("Antwort löschen");
btAnwortZufuegen.setFont(Font.font("Arial", 14));
btAnwortLoeschen.setFont(Font.font("Arial", 14));
HBox hboxZufuegen = new HBox();
HBox hboxLoeschen = new HBox();
hboxZufuegen.getChildren().add(btAnwortZufuegen);
hboxLoeschen.getChildren().add(btAnwortLoeschen);
HBox.setMargin(hboxLoeschen, new Insets(10, 10, 10, 10));
HBox.setMargin(hboxZufuegen, new Insets(10, 10, 10, 10));
HBox vbButtonAntwort = new HBox();
vbButtonAntwort.getChildren().add(hboxZufuegen);
vbButtonAntwort.getChildren().add(hboxLoeschen);
vbButtonAntwort.setAlignment(Pos.CENTER);
boxAntworten.getChildren().add(xboxZeile);
boxAntworten.getChildren().add(vbButtonAntwort);
root.getChildren().add(boxAntworten);
primaryStage.setScene(new Scene(root, 600, 600));
primaryStage.show();
xboxZeile.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
System.out.println(xboxZeile.getId());
}
});
btAnwortLoeschen.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println(btAnwortLoeschen.getText());
List<Node> nodes = xboxZeile.getChildren();
for (Node node : nodes) {
System.out.println(node.getId());
}
System.out.println("----------------------");
int counter = 0;
ArrayList<Node> an = getAllNodes(root);
for (Node node : an) {
node.parentProperty().getName();
if (node.getId() != null) {
// System.out.println(node.getId());
counter++;
}
}
if (zaehler > 2) {
xboxZeile.getChildren().remove(--counter);
zaehler--;
primaryStage.show();
}
}
});
btAnwortZufuegen.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if (zaehler < 9) {
xboxZeile.getChildren().add(fragenzeile(++zaehler));
primaryStage.show();
}
}
});
}
HBox zeileFrage;
public HBox fragenzeile(int nummer) {
Integer a = nummer;
zeileFrage = new HBox();
zeileFrage.setId(a.toString());
zeileFrage.setAlignment(Pos.CENTER_LEFT);
final Label lbZaehler = new Label(nummer + ".)");
lbZaehler.setFont(Font.font("Arial", 14));
HBox hboxZaehler = new HBox();
zeileFrage.setId("zeilFrage" + a.toString());
System.out.println("----------------------");
System.out.println(zeileFrage);
System.out.println(zeileFrage.getId());
System.out.println("----------------------");
hboxZaehler.setAlignment(Pos.CENTER_LEFT);
hboxZaehler.getChildren().add(lbZaehler);
HBox.setMargin(lbZaehler, new Insets(0, 10, 0, 10));
TextArea taAntwort = new TextArea();
taAntwort.setMaxHeight(45);
// taAntwort.setStyle("-fx-text-fill: BLACK;"
// + "-fx-font-size: 14pt;");
final CheckBox cbTrue = new CheckBox();
HBox hboxCheckBox = new HBox();
hboxCheckBox.setAlignment(Pos.CENTER_LEFT);
hboxCheckBox.getChildren().add(cbTrue);
HBox.setMargin(cbTrue, new Insets(0, 5, 0, 10));
final Label lbtrueFalse = new Label("false");
lbtrueFalse.setFont(Font.font("Arial", 14));
zeileFrage.getChildren().add(hboxZaehler);
zeileFrage.getChildren().add(taAntwort);
zeileFrage.getChildren().add(hboxCheckBox);
zeileFrage.getChildren().add(lbtrueFalse);
cbTrue.selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable,
Boolean oldValue, Boolean newValue) {
// System.out.println(newValue);
if (newValue == true) {
lbtrueFalse.setText("true");
} else {
lbtrueFalse.setText("false");
}
}
});
return zeileFrage;
}
public static ArrayList<Node> getAllNodes(Parent root) {
ArrayList<Node> nodes = new ArrayList<Node>();
addAllDescendents(root, nodes);
return nodes;
}
private static void addAllDescendents(Parent parent, ArrayList<Node> nodes) {
for (Node node : parent.getChildrenUnmodifiable()) {
nodes.add(node);
if (node instanceof Parent)
addAllDescendents((Parent) node, nodes);
}
}
}
Wie kann ich jetzt den eingebenen Text in den TextAreas abfragen/abholen. Ich komme nicht darauf.
Für eine Idee wäre ich echt dankbar.