【发布时间】:2016-09-20 12:23:14
【问题描述】:
我有类似的东西
public class MyClass extends Application {
public void start(Stage stage) {
MyModel model = new MyModel();
MyController controller = new MyController(model);
MyView view = new MyView(model, controller);
Scene scene = new Scene(view);
stage.setTitle("MyTitle");
stage.setScene(scene);
stage.sizeToScene();
stage.show();
view.requestFocus();
}
public void changeStageSize(int width, int height) {
...
}
public static void main(String[] args) {
launch(args);
}
}
我必须在 changeStageSize void 中写入什么来更改我的 stage 大小?
【问题讨论】:
-
没关系,因为
changeStageSize没有在任何地方使用... -
我在 MyView 类中使用它。没有发布它,因为那里没有什么特别的事情发生。
-
两个问题:#1:您的
Application不包含对Stage的引用,#2:您的MyView类不包含对Application的引用。你可以做什么:#1:将Stage的引用传递给控制器,#2:在控制器中使用通过(Stage) node.getScene().getWindow()添加到场景图中的任何节点获取Stage。然后在那里写调整大小的方法。您可以在this question 中找到这两种情况的示例。然后:stage.setWidth,stage.setHeight。