我最近升级到 Windows 10,在 Windows 8.1 中运行的 JavaFX 代码似乎在 10 中卡住了。我已将问题追溯到在对话框中打开 ComboBox。这似乎会卡住任何 JavaFX 程序。还有其他人有同样的问题吗? (Windows 10 计算机仍然很少,所以最好确认错误确实是 JavaFX 问题)
我在下面附上了示例代码。主舞台中的 ComboBox 很好,但是当我打开一个对话框并尝试在那里使用 ComboBox 时,整个过程都卡住了。我在 Eclipse 4.4.0 中使用 Java 8u51
package javafxExamples;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceDialog;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class ComboErrorTest extends Application {
String[] list={"Jamie", "Arthur", "Gordon"};
private Stage stage;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
//create box in main stage.
ComboBox<String> comboBox=new ComboBox<String>();
for (int i=0; i<list.length; i++){
comboBox.getItems().add(list[i]);
}
comboBox.getSelectionModel().select(list[0]);
BorderPane pane = new BorderPane(comboBox);
pane.setPrefSize(400, 250);
//dialog bit
List<String> choices = new ArrayList<>();
choices.add("a");
choices.add("b");
choices.add("c");
ChoiceDialog<String> dialog = new ChoiceDialog<>("b", choices);
dialog.setTitle("Choice Dialog");
dialog.setHeaderText("Look, a Choice Dialog");
dialog.setContentText("Choose your letter:");
Button dialogButton=new Button("Open Dialog...");
dialogButton.setOnAction((action)->{
// Traditional way to get the response value.
Optional<String> result = dialog.showAndWait();
if (result.isPresent()){
System.out.println("Your choice: " + result.get());
}
});
pane.setBottom(dialogButton);
Scene scene = new Scene(pane);
stage.setTitle("ComboError Demo");
stage.setScene(scene);
stage.show();
}
}
最佳答案
根据bug report ,临时解决方法是设置以下系统属性:
java -Dglass.accessible.force=false ...
或者,在应用程序的代码中:
System.setProperty("glass.accessible.force", "false");
或者,“运行 Windows 讲述人屏幕阅读器(启用辅助功能)”。
该错误似乎已在 JDK 8u40 中引入,并影响安装并启用了触摸屏的 Windows 10 系统。
一些快速测试似乎表明它为我解决了问题。
关于windows - JavaFX ComboBox 在 Windows 10 上没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31786980/