【问题标题】:JavaFX 2 Pane Dynamic ResizingJavaFX 2 窗格动态调整大小
【发布时间】:2013-03-16 19:50:44
【问题描述】:

我的界面中有一个窗格。在那个窗格上,我添加了 Shape 对象并拖动它们。 当一个形状到达窗格的视觉边界时,我如何使我的窗格更大。作为原型, 每当我单击鼠标时,我都会尝试将其放大。 Pane 是 ScrollPane 的子(内)。这是我的代码:

    paneArea.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent mouseEvent) {
            System.out.println(paneArea.getWidth()+" "+paneArea.getHeight());
            paneArea.resize(paneArea.getWidth() + 100, paneArea.getHeight() + 100);                
            System.out.println(paneArea.getWidth()+" "+paneArea.getHeight());
        }
    });

当我点击两次时,我得到以下结果:

602.0 574.0
702.0 674.0
602.0 574.0
702.0 674.0

所以窗格基本上会短暂调整大小,然后返回到其原始大小。在 FXML 上,最大高度和宽度设置为 USE_PREF_SIZE 以及 MAX_VALUE。我还尝试在调用调整大小之前增加 maxWidth/height,但没有任何区别。有什么建议吗?

【问题讨论】:

    标签: java javafx-2 pane


    【解决方案1】:

    我一直在使用错误的方法以及 fxml 选项。方法是使用 setPrefSize 方法,然后在 fxml 文件中的 USE_PREF 处设置最大大小。

    【讨论】:

    • 我的 2cents 我认为您还应该将最小尺寸设置为 USE_PREF 在 fxml 文件中。
    【解决方案2】:

    您的代码错误。而不是使用

    paneArea.resize(paneArea.getWidth() + 100, paneArea.getHeight() + 100); 
    

    使用

    paneArea.setPrefWidth(paneArea.getWidth() + 100) ; 
    paneArea.setPrefHeight(paneArea.getHeight)() + 100) ;
    

    【讨论】:

    • 感谢您的回答,尽管该问题已不再相关,因此我无法对此进行测试。
    猜你喜欢
    • 1970-01-01
    • 2014-08-15
    • 2017-03-25
    • 2017-06-20
    • 1970-01-01
    • 2017-03-09
    • 2017-07-06
    • 2013-07-16
    • 1970-01-01
    相关资源
    最近更新 更多