当我运行以下程序时,按钮上的第一次单击将有50%的可能性导致Window移动大约10个像素(使用Ubuntu linux,Oracle JDK 1.8, JavaFx 8.0.102-b14)。之后,每次点击都会导致一个小的向上移动。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class JavaFxTest extends Application {
@Override
public void start(Stage myStage) {
myStage.setTitle("Hello World!");
Button myButton = new Button();
myButton.setText("Click!");
myButton.setOnAction(event -> myStage.setY(myStage.getY() - 1));
StackPane myStackPane = new StackPane();
myStackPane.getChildren().add(myButton);
myStage.setScene(new Scene(myStackPane, 300, 250));
myStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
以下视频演示了该错误: https://youtu.be/c7QFuya7V4M
随着awt和摇摆我遇到了类似的麻烦,并在这里发布了这个问题: Workaround for bug_id=4806603 regarding getBounds() and setBounds() on Linux?
为了实现正确的窗口放置,是否有人有解决方法?