在显示应用模式SplitPane
后,ScrollBar
和Stage
控件上的鼠标处理中断。应用程序窗口丢失并重新获得焦点后,问题就消失了。有没有人知道这个问题的解决方案或解决方法?
鼠标处理方式有何损坏?当您点击并开始拖动控件(SplitPane
或ScrollBar
)时,控件会停止响应您的鼠标移动鼠标光标离开控件的那一刻。这要求用户使用鼠标不可能精确。您可以期望控件响应鼠标移动,无论您的鼠标光标位于何处,直到您释放鼠标按钮。
以下代码展示了Ubuntu Linux和JRE 1.7.0_21上的问题。我在其他JRE上看到了这个问题,但我没有尝试过其他操作系统。
import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.SplitPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.stage.Modality;
public class SplitPaneBug extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Button button = new Button(
"Move the SplitPane divider, then click here to show the modal"
+ " dialog.");
button.setOnAction(
new EventHandler() {
public void handle(Event event) {
Stage dialog = new ModalDialog();
dialog.showAndWait();
}
});
button.setMaxWidth(Double.MAX_VALUE);
SplitPane splitPane = new SplitPane();
splitPane.getItems().setAll(new BorderPane(), new BorderPane());
VBox vbox = new VBox();
vbox.getChildren().setAll(button, splitPane);
vbox.setVgrow(splitPane, Priority.ALWAYS);
primaryStage.setTitle("SplitPane Bug?");
primaryStage.setScene(new Scene(vbox, 640, 480));
primaryStage.show();
}
class ModalDialog extends Stage {
public ModalDialog() {
Button button = new Button(
"Click here to dismiss this dialog, then move the SplitPane"
+ " divider again.");
button.setOnAction(
new EventHandler() {
public void handle(Event event) {
close();
}
});
BorderPane borderPane = new BorderPane();
borderPane.setCenter(button);
initModality(Modality.APPLICATION_MODAL);
setTitle("Modal Dialog");
setScene(new Scene(borderPane, 600, 100));
sizeToScene();
}
}
}
答案 0 :(得分:1)
您确定使用的是7u21吗?请设置为输出VersionInfo.getRuntimeVersion()。 我不会在我的ubuntu 12.10上使用从官方网站下载的jdk 7u21(b11)重现, 但是fx 8.0中存在已知错误 - https://javafx-jira.kenai.com/browse/RT-29576