Итак, что я пытаюсь сделать, это:
1) Возьмите ввод, введенный из TextInputDialog "td", и сохраните его в переменной, затем 2) Используйте ввод выше, чтобы сделать вариант по умолчанию для Пользовательское диалоговое окно, которое находится в моем классе ExampleDialog в ComboBox, автоматически будет изменено на верхний ввод.
, т. Е. Таким образом, когда в следующий раз пользователь перейдет в пользовательское диалоговое окно, комбинированное окно выбора элемента будет тем, что было введено в него. текстовое диалоговое окно.
Я попытался сделать это и создать новое текстовое поле et c. так что вы можете увидеть некоторый случайный код, похожий на этот элемент управления JavaFX UI
Это просто практика, но вы узнаете из этого, если кто-то другой мне поможет. сохранение его в качестве переменной для использования
Первый класс (строки 47-51 Я попытался создать новое текстовое поле Элементы управления пользовательского интерфейса JavaFX (TextFields)) :
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.TilePane;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;
public class MenuDemo extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
MenuBar menuBar = new MenuBar();
Menu fileMenu = new Menu("File");
Menu helpMenu = new Menu("Help");
MenuItem factoryPopUpMI = new MenuItem("Factory PopUp...");
MenuItem myDialogMI = new MenuItem("Custom Dialog Box");
MenuItem savePopUpMI = new MenuItem("Save");
MenuItem exitMI = new MenuItem("Exit");
MenuItem aboutMI = new MenuItem("About...");
fileMenu.getItems().add(factoryPopUpMI);
fileMenu.getItems().add(myDialogMI);
fileMenu.getItems().add(savePopUpMI);
fileMenu.getItems().add(new SeparatorMenuItem());
fileMenu.getItems().add(exitMI);
helpMenu.getItems().add(aboutMI);
menuBar.getMenus().addAll(fileMenu, helpMenu);
TextInputDialog td = new TextInputDialog();
td.setTitle("Question");
td.setHeaderText("What is your favourite football team?");
Label label1 = new Label("Name:");
TextField textField = new TextField();
HBox hb = new HBox();
hb.getChildren().addAll(label1, textField);
hb.setSpacing(10);
exitMI.setOnAction(new EventHandler<>() {
@Override
public void handle(ActionEvent event) {
System.exit(0);
}
});
factoryPopUpMI.setOnAction(new EventHandler<>() {
@Override
public void handle(ActionEvent event) {
td.show();
}
});
myDialogMI.setOnAction(new EventHandler<>() {
@Override
public void handle(ActionEvent event) {
ExampleDialog dialog = new ExampleDialog();
dialog.initModality(Modality.APPLICATION_MODAL);
dialog.initOwner(primaryStage);
dialog.show();
}
});
savePopUpMI.setOnAction(new EventHandler<>() {
@Override
public void handle(ActionEvent event) {
Alert saveAlert = new Alert(Alert.AlertType.WARNING);
saveAlert.setTitle("Alert");
saveAlert.setContentText("File Saved");
saveAlert.setHeaderText("Save Successful");
saveAlert.showAndWait();
}
});
VBox vb = new VBox();
vb.getChildren().add(menuBar);
Scene scene = new Scene(vb, 350,150);
primaryStage.setScene(scene);
primaryStage.setTitle("JavaFX Menu Demo");
primaryStage.show();
}
}
Второй класс:
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class ExampleDialog extends Stage {
private ComboBox<String> selectionCombo;
private CheckBox showResultsCheckBox;
private TextField resultTextField;
ExampleDialog(){
HBox makeSelectionBox = new HBox();
makeSelectionBox.setSpacing(25);
makeSelectionBox.setPadding(new Insets(10));
makeSelectionBox.setAlignment(Pos.CENTER);
HBox showSelectionBox = new HBox();
showSelectionBox.setSpacing(25);
showSelectionBox.setPadding(new Insets(15));
HBox buttonsBox = new HBox();
buttonsBox.setSpacing(30);
buttonsBox.setPadding(new Insets(10));
buttonsBox.setAlignment(Pos.CENTER);
Label selectionLabel = new Label("Select Team");
selectionCombo = new ComboBox<>();
selectionCombo.getItems().addAll("Arsenal", "Chelsea", "Liverpool", "Manchester City", "Manchester United");
showResultsCheckBox = new CheckBox("Show Selections");
showResultsCheckBox.setSelected(true);
resultTextField = new TextField("No Selection Made");
Button okButton = new Button("OK");
Button cancelButton = new Button("Cancel");
selectionCombo.setOnAction(new EventHandler<>() {
@Override
public void handle(ActionEvent event) {
doSelectionUpdate();
}
});
okButton.setOnAction(new EventHandler<>() {
@Override
public void handle(ActionEvent event) {
ExampleDialog.this.close();
}
});
cancelButton.setOnAction(new EventHandler<>() {
@Override
public void handle(ActionEvent event) {
ExampleDialog.this.close();
}
});
makeSelectionBox.getChildren().addAll(selectionLabel, selectionCombo);
showSelectionBox.getChildren().addAll(showResultsCheckBox, resultTextField);
buttonsBox.getChildren().addAll(okButton, cancelButton);
VBox dialogBox = new VBox(makeSelectionBox, showSelectionBox, buttonsBox);
Scene dialogScene = new Scene(dialogBox, 375, 150);
this.setScene(dialogScene);
}
private void doSelectionUpdate() {
if (showResultsCheckBox.isSelected()){
resultTextField.setText("Selected Team is " + selectionCombo.getValue());
System.out.println(selectionCombo.getValue());
}
}
}