下面列出了javafx.scene.control.TextInputDialog#showAndWait ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Displays a small window allowing the user to enter a name for the new
* preference
*
* @author formalhaut69
* @return A tuple, the first item is a Boolean indicating whether the user
* selected to proceed with the operation or not, the second is the name of
* the file requested by the user.
*/
public static Tuple<Boolean, String> getName() {
String returnedName = "";
// opens up a slightly different dialog window to allow the user to name the
// preference when it is being saved
// create a text input dialog
TextInputDialog td = new TextInputDialog();
td.setTitle("Preference name");
// setHeaderText
td.setHeaderText("Enter a name for the preference");
Optional<String> result = td.showAndWait();
if (result.isPresent()) {
returnedName = td.getEditor().getText();
}
return new Tuple<>(result.isPresent(), returnedName);
}
/**
* @param title null if user pressed cancel, or the text entered if pressed
* OK (if pressed OK with no text entered, empty string is
* brought back
* @param textlength the maximum length of text to enter
* @return
*/
public String showModalTextEntry(String title, int textlength) {
logger.fine("NormalTextEntry " + title + " - " + textlength);
logger.fine(" prepare to launch dialog");
TextInputDialog dialog = new TextInputDialog();
dialog.setHeaderText("Enter Update Note below");
dialog.setContentText("");
Optional<String> result = dialog.showAndWait();
logger.fine(" dialog is displayed");
if (!result.isPresent())
return null;
return result.get();
}
@Override
public void handle(ActionEvent t) {
TextInputDialog dialog = new TextInputDialog("http://");
dialog.setTitle(LabelGrabber.INSTANCE.getLabel("website.dialog.title"));
dialog.setHeaderText(LabelGrabber.INSTANCE.getLabel("website.dialog.header"));
dialog.setContentText(LabelGrabber.INSTANCE.getLabel("website.dialog.content"));
dialog.setGraphic(new ImageView(new Image("file:icons/website.png")));
Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
stage.getIcons().add(new Image("file:icons/web-small.png"));
Optional<String> result = dialog.showAndWait();
if (result.isPresent()) {
String url = result.get();
if (!url.startsWith("http")) {
url = "http://" + url;
}
WebDisplayable displayable = new WebDisplayable(url);
QueleaApp.get().getMainWindow().getMainPanel().getSchedulePanel().getScheduleList().add(displayable);
}
}
@FXML
public void addLinkAction() {
try {
// http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
TextInputDialog dialog = new TextInputDialog("http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8");
dialog.setTitle(message("HTTPLiveStreaming"));
dialog.setHeaderText(message("InputAddress"));
dialog.setContentText("HLS(.m3u8)");
dialog.getEditor().setPrefWidth(500);
Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
stage.setAlwaysOnTop(true);
stage.toFront();
Optional<String> result = dialog.showAndWait();
if (!result.isPresent()) {
return;
}
String address = result.get();
addLink(address);
} catch (Exception e) {
logger.error(e.toString());
}
}
@FXML
protected void plusAction() {
try {
TextInputDialog dialog = new TextInputDialog("https://");
dialog.setTitle(message("DownloadManage"));
dialog.setHeaderText(message("InputAddress"));
dialog.setContentText("");
dialog.getEditor().setPrefWidth(500);
Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
stage.setAlwaysOnTop(true);
stage.toFront();
Optional<String> result = dialog.showAndWait();
if (!result.isPresent()) {
return;
}
String address = result.get();
download(address);
} catch (Exception e) {
logger.error(e.toString());
}
}
@FXML
public void plusAction() {
TextInputDialog dialog = new TextInputDialog("");
dialog.setTitle(message("ManageLanguages"));
dialog.setHeaderText(message("InputLangaugeName"));
dialog.setContentText("");
dialog.getEditor().setPrefWidth(200);
Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
stage.setAlwaysOnTop(true);
stage.toFront();
Optional<String> result = dialog.showAndWait();
if (!result.isPresent() || result.get().trim().isBlank()) {
return;
}
langName = result.get().trim();
langLabel.setText(langName);
loadLanguage(null);
}
@FXML
public void editAction(ActionEvent event) {
// load current selection and allow user to change value
int index = lwBootstrappingNodes.getSelectionModel().getSelectedIndex();
String nodeAddress = lwBootstrappingNodes.getSelectionModel().getSelectedItem();
TextInputDialog input = new TextInputDialog();
DialogUtils.decorateDialogWithIcon(input);
input.getEditor().setText(nodeAddress);
input.setTitle("Edit Node Address");
input.setHeaderText("Enter node address");
Optional<String> result = input.showAndWait();
if(result.isPresent()) {
String newNodeAddress = result.get().trim();
if (!newNodeAddress.isEmpty() && !containsAddress(newNodeAddress)) {
addresses.add(index, newNodeAddress);
addresses.remove(nodeAddress);
}
}
}
/**
* show an input dialog
*
* @param swingParent
* @param title
* @param message
* @param initialValue
* @return
*/
private static String showInput(final Component swingParent, final String title, final String message, final String initialValue) {
final Single<String> input = new Single<>(null);
if (Platform.isFxApplicationThread()) {
final TextInputDialog dialog = new TextInputDialog(initialValue != null ? initialValue : "");
dialog.setTitle(title);
dialog.setHeaderText(message);
final Optional<String> result = dialog.showAndWait();
result.ifPresent(input::set);
} else if (javax.swing.SwingUtilities.isEventDispatchThread()) {
input.set(JOptionPane.showInputDialog(swingParent, message, initialValue));
} else {
try {
SwingUtilities.invokeAndWait(() -> input.set(showInput(swingParent, title, message, initialValue)));
} catch (Exception e) {
Basic.caught(e);
}
}
return input.get();
}
/**
* 分岐点係数を変更する
*
* @param event ActionEvent
*/
@FXML
void changeBranchCoefficient(ActionEvent event) {
TextInputDialog dialog = new TextInputDialog(Double.toString(this.branchCoefficient));
dialog.getDialogPane().getStylesheets().add("logbook/gui/application.css");
InternalFXMLLoader.setGlobal(dialog.getDialogPane());
dialog.initOwner(this.getScene().getWindow());
dialog.setTitle("分岐点係数を変更");
dialog.setHeaderText("分岐点係数を数値で入力してください 例)\n"
+ "沖ノ島沖 G,I,Jマス 係数: 1.0\n"
+ "北方AL海域 Gマス 係数: 4.0\n"
+ "中部海域哨戒線 G,Hマス 係数: 4.0\n"
+ "MS諸島沖 E,Iマス 係数: 3.0\n"
+ "グアノ環礁沖海域 Hマス 係数: 3.0");
val result = dialog.showAndWait();
if (result.isPresent()) {
String value = result.get();
if (!value.isEmpty()) {
try {
this.branchCoefficient = Double.parseDouble(value);
this.setDecision33();
} catch (NumberFormatException e) {
}
}
}
}
@FXML
@Override
public void saveAsAction() {
MediaList selected = tableView.getSelectionModel().getSelectedItem();
if (selected == null || selected.getMedias() == null) {
return;
}
TextInputDialog dialog = new TextInputDialog("");
dialog.setTitle(message("ManageMediaLists"));
dialog.setHeaderText(message("InputMediaListName"));
dialog.setContentText("");
dialog.getEditor().setPrefWidth(400);
Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
stage.setAlwaysOnTop(true);
stage.toFront();
Optional<String> result = dialog.showAndWait();
if (!result.isPresent() || result.get().trim().isBlank()) {
return;
}
String newName = result.get().trim();
for (MediaList list : tableData) {
if (list.getName().equals(newName)) {
popError(message("AlreadyExisted"));
return;
}
}
if (TableMediaList.set(newName, selected.getMedias())) {
popSuccessful();
tableData.add(MediaList.create().setName(newName).setMedias(selected.getMedias()));
} else {
popFailed();
}
}
@FXML
@Override
public void saveAction() {
if (mediaListName == null || mediaListName.isBlank()) {
if (tableData.isEmpty()) {
tableLabel.setText("");
return;
}
TextInputDialog dialog = new TextInputDialog("");
dialog.setTitle(message("ManageMediaLists"));
dialog.setHeaderText(message("InputMediaListName"));
dialog.setContentText("");
dialog.getEditor().setPrefWidth(400);
Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
stage.setAlwaysOnTop(true);
stage.toFront();
Optional<String> result = dialog.showAndWait();
if (!result.isPresent() || result.get().trim().isBlank()) {
return;
}
mediaListName = result.get().trim();
}
if (TableMediaList.set(mediaListName, tableData)) {
tableLabel.setText(message("MediaList") + ": " + mediaListName);
if (parentController != null) {
parentController.popSuccessful();
if (parentController instanceof MediaListController) {
((MediaListController) parentController).update(mediaListName);
}
}
} else {
if (parentController != null) {
parentController.popFailed();
}
}
}
public void onHeader() {
TextInputDialog input = new TextInputDialog();
input.setTitle("New Header");
input.setContentText("Label: ");
input.setHeaderText("Please enter header text.");
Optional<String> result = input.showAndWait();
result.ifPresent(name -> {
checkListFormNode.addHeader(name);
fireContentChanged();
});
}
public void onChecklist() {
TextInputDialog input = new TextInputDialog();
input.setTitle("New Checklist Item");
input.setContentText("Label: ");
input.setHeaderText("Please enter item label.");
Optional<String> result = input.showAndWait();
result.ifPresent(name -> {
checkListFormNode.addCheckListItem(name);
fireContentChanged();
});
}
public static Optional<String> askInputFromUser(String title, String msg) {
TextInputDialog dialog = new TextInputDialog();
dialog.setTitle(title);
dialog.setHeaderText(null);
dialog.setContentText(msg);
return dialog.showAndWait();
}
public static Optional<String> askInputFromUser(String title, String msg) {
TextInputDialog dialog = new TextInputDialog();
dialog.setTitle(title);
dialog.setHeaderText(null);
dialog.setContentText(msg);
return dialog.showAndWait();
}
public static String showInputDialog(String header, String content, String defaultValue) {
TextInputDialog dialog = new TextInputDialog(defaultValue);
dialog.setTitle(QiniuValueConsts.MAIN_TITLE);
dialog.setHeaderText(header);
dialog.setContentText(content);
Optional<String> result = dialog.showAndWait();
return result.orElse(null);
}
@FXML
void onNewMeasurment(ActionEvent event) {
newMeasurmentButton.setDisable(true);
TextInputDialog dialog = new TextInputDialog("lengthOfThing");
dialog.setTitle("Add new measurment to "+typeOfVitaminString);
dialog.setHeaderText("This measurment will be added to all instances of the vitamin");
dialog.setContentText("New measurment name:");
// Traditional way to get the response value.
Optional<String> result = dialog.showAndWait();
// The Java 8 way to get the response value (with lambda expression).
result.ifPresent(name -> {
TextInputDialog dialog2 = new TextInputDialog("0.0");
dialog2.setTitle("Set value of "+name);
dialog2.setHeaderText("This value will be added to all instances of the vitamin");
dialog2.setContentText(name+" = ");
// Traditional way to get the response value.
Optional<String> result2 = dialog2.showAndWait();
result2.ifPresent(name2 -> {
setupKeyValueToTable(name,name2,sizeOfVitaminString);
for(String size:Vitamins.listVitaminSizes(typeOfVitaminString)) {
Vitamins.getConfiguration(typeOfVitaminString, size).put(name,name2);
}
});
newMeasurmentButton.setDisable(false);
});
}
@FXML
public void addAction(ActionEvent event) {
// request node address from user and add
TextInputDialog input = new TextInputDialog();
DialogUtils.decorateDialogWithIcon(input);
input.getEditor().setPromptText("Enter address");
input.setTitle("New Node Address");
input.setHeaderText("Enter new node address");
Optional<String> result = input.showAndWait();
if (result.isPresent()) {
String nodeAddress = result.get().trim();
addItemIgnoreDuplicate(nodeAddress);
}
}
@FXML
@Override
public void addAction() {
try {
TextInputDialog dialog = new TextInputDialog("docs.oracle.com");
dialog.setTitle(message("SSLVerificationByPass"));
dialog.setHeaderText(message("InputAddress"));
dialog.setContentText("");
dialog.getEditor().setPrefWidth(500);
Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
stage.setAlwaysOnTop(true);
stage.toFront();
Optional<String> result = dialog.showAndWait();
if (!result.isPresent()) {
return;
}
String address = result.get().trim();
if (address.isBlank()) {
return;
}
for (CertificateBypass p : tableData) {
if (p.getHost().equals(address)) {
return;
}
}
if (TableBrowserBypassSSL.write(address)) {
CertificateBypass newdata = TableBrowserBypassSSL.read(address);
if (newdata != null) {
tableData.add(newdata);
tableView.refresh();
popSuccessful();
} else {
popFailed();
}
} else {
popFailed();
}
} catch (Exception e) {
logger.error(e.toString());
}
}
@FXML
@Override
public void okAction() {
if (certController == null) {
return;
}
if (addressRadio.isSelected()) {
if (addressInput.getText().isEmpty()) {
popError(message("NotExist"));
return;
}
} else {
sourceFile = new File(sourceFileInput.getText());
if (!sourceFile.exists() || !sourceFile.isFile()) {
popError(message("NotExist"));
return;
}
}
File ksFile = new File(certController.getSourceFileInput().getText());
if (!ksFile.exists() || !ksFile.isFile()) {
popError(message("NotExist"));
return;
}
String password = certController.getPasswordInput().getText();
TextInputDialog dialog = new TextInputDialog("");
dialog.setTitle(message("SecurityCertificates"));
dialog.setHeaderText(message("Alias"));
dialog.setContentText("");
dialog.getEditor().setPrefWidth(300);
Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
stage.setAlwaysOnTop(true);
stage.toFront();
Optional<String> result = dialog.showAndWait();
if (!result.isPresent() || result.get().trim().isBlank()) {
return;
}
final String alias = result.get().trim();
if (!certController.backupKeyStore()) {
return;
}
try {
synchronized (this) {
if (task != null) {
return;
}
task = new SingletonTask<Void>() {
@Override
protected boolean handle() {
error = null;
if (addressRadio.isSelected()) {
try {
error = NetworkTools.installCertificateByHost(
ksFile.getAbsolutePath(), password,
addressInput.getText(), alias);
} catch (Exception e) {
error = e.toString();
}
} else if (fileRadio.isSelected()) {
try {
error = NetworkTools.installCertificateByFile(
ksFile.getAbsolutePath(), password,
sourceFile, alias);
} catch (Exception e) {
error = e.toString();
}
}
return true;
}
@Override
protected void whenSucceeded() {
if (error == null) {
certController.loadAll(alias);
if (saveCloseCheck.isSelected()) {
closeStage();
}
popSuccessful();
} else {
popError(error);
}
}
};
openHandlingStage(task, Modality.WINDOW_MODAL);
Thread thread = new Thread(task);
thread.setDaemon(true);
thread.start();
}
} catch (Exception e) {
logger.error(e.toString());
}
}