首先调用JavaFx Stage :: setY在Linux上不一致 - 解决方法?

时间:2016-08-22 18:43:17

标签: java linux javafx-8

当我运行以下程序时,按钮上的第一次单击将有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?

为了实现正确的窗口放置,是否有人有解决方法?

0 个答案:

没有答案