与预期相反,ChoiceDialog中按钮的默认顺序是“取消”在左侧,“确定”在右侧。
在这个方法中,我创建了一个列出牛性别(奶牛、小母牛、阉牛等)的对话框。除了按钮顺序与我构建的其他自定义对话框相反之外,默认对话框都可以正常工作。
我认为“Java外观和感觉设计指南”要求对话框中“确定”在左侧,“取消”在右侧。
无论如何,如下代码所示,我已经尝试设置自己的按钮。改变它们添加的顺序没有任何区别。
然而,如果使用ButtonData.OTHER,则可以获得所需的顺序,但无法获得所选的性别。
我真正想做的就是改变按钮顺序,并获得所需的结果。
在这个方法中,我创建了一个列出牛性别(奶牛、小母牛、阉牛等)的对话框。除了按钮顺序与我构建的其他自定义对话框相反之外,默认对话框都可以正常工作。
我认为“Java外观和感觉设计指南”要求对话框中“确定”在左侧,“取消”在右侧。
无论如何,如下代码所示,我已经尝试设置自己的按钮。改变它们添加的顺序没有任何区别。
然而,如果使用ButtonData.OTHER,则可以获得所需的顺序,但无法获得所选的性别。
我真正想做的就是改变按钮顺序,并获得所需的结果。
public static final String getChoice_Sex()
{
String sex = "";
List<String> list_Sexs = LM_Constant.getList_Sexs();
ChoiceDialog<String> dialog = new ChoiceDialog<>(list_Sexs.get(0), list_Sexs);
dialog.setTitle("Sex");
dialog.setHeaderText("Please choose one.");
dialog.setContentText("From this list:");
//ButtonType button_OK = new ButtonType("OK", ButtonData.OK_DONE);
//ButtonType button_OK = new ButtonType("OK", ButtonData.OTHER);
//ButtonType button_Cancel = new ButtonType("Cancel", ButtonData.CANCEL_CLOSE);
//dialog.getDialogPane().getButtonTypes().clear();
//dialog.getDialogPane().getButtonTypes().add(button_Cancel);
//dialog.getDialogPane().getButtonTypes().add(button_OK);
//dialog.getDialogPane().getButtonTypes().add(button_Cancel);
Optional<String> result = dialog.showAndWait();
if (result.isPresent())
sex = result.get();
return sex;
}