所以我有這樣的代碼在這裏,它應該動態地添加文本框和按鈕取決於用戶多少次按下New Column
但是它沒有添加任何。添加文本框的動態JavaFX中
newColumn.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent e){
String column = columns.getText();
columns.clear();
final HBox hbox1 = new HBox();
final TextField textField = new TextField();
textField.setText(column);
Button delete = new Button("X");
vbox.getChildren().add(hbox1);
delete.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent e){
vbox.getChildren().remove(hbox1);
}
});
}
});
這是應該添加新按鈕的代碼的一部分。下面的代碼的其餘部分,顯示的窗口和其他everythig:
package GUI;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Example extends Application{
/**
* @param args
*/
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Scene scene = new Scene(new Group());
primaryStage.setTitle("Parameters");
primaryStage.setWidth(500);
primaryStage.setHeight(800);
showWindow(scene);
primaryStage.setScene(scene);
primaryStage.show();
}
public void showWindow(Scene scene){
final VBox vbox = new VBox();
final HBox hbox = new HBox();
final TextField columns = new TextField();
Button newColumn = new Button("New Column");
Button done = new Button("Done");
hbox.setSpacing(5);
hbox.getChildren().addAll(columns, newColumn);
vbox.setSpacing(5);
vbox.setPadding(new Insets(20, 0, 0, 20));
vbox.getChildren().addAll(hbox);
newColumn.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent e){
String column = columns.getText();
columns.clear();
final HBox hbox1 = new HBox();
final TextField textField = new TextField();
textField.setText(column);
Button delete = new Button("X");
vbox.getChildren().add(hbox1);
delete.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent e){
vbox.getChildren().remove(hbox1);
}
});
}
});
vbox.getChildren().addAll(done);
((Group) scene.getRoot()).getChildren().addAll(vbox);
}
}
我還使用JavaFX的,沒有什麼幫助。
獲得的列表中你[重繪(http://stackoverflow.com/questions/17305584/textfield - 不動態更新?rq = 1)文本字段? – Justin
不,我想每次添加文本框的人按下按鈕「新列」,或者更具體地說,我想每個人按下該按鈕時添加橫向方框。但是,它不會將這些框添加到我的vbox或它不顯示它們。 – Argus