【问题标题】:Unresizable ever JavaFX Window无法调整大小的 JavaFX 窗口
【发布时间】:2017-02-12 01:52:24
【问题描述】:

我的问题是我的 JavaFX 窗口比底部扩展得更远,因此显示出奇怪的空白背景...

我设置了stage.setResizable(false),但它似乎不起作用。我也设置了

stage.setMinWidth(1280);
stage.setMaxWidth(1280);
stage.setMinHeight(800);
stage.setMaxHeight(800);

我认为这是由于某些ImageView 比窗口大,但我真的希望我的窗口能够保持我设置的最大值并且绝对不能调整大小。

这是它的样子:click here

我还注意到只有在设置stage.initStyle(StageStyle.TRANSPARENT) 时才会发生这种情况。 但我不希望我的窗户装饰有stage.initStyle(StageStyle.DECORATED)... :(

提前感谢您的帮助。 :)

【问题讨论】:

  • 是什么让你确定它的高度不是800?
  • 因为当我不放这个溢出窗口的节点时,它工作得很好。而且因为我知道 1280*800 的样子。
  • 很公平。我投了赞成票,希望这会引起更多关注。检查一下,看看它是否有帮助:stackoverflow.com/questions/20732100/…
  • 我试过了,还是不行:(

标签: java javafx


【解决方案1】:

你有没有试过直接使用setWidthsetHeight

stage.setWidth(1280);
stage.setHeight(800);

我认为 setMaxWidth、setMinHeight... 等仅适用于装饰屏幕,因为它的主要目的是限制用户可以设置窗口的大小。这是我的例子:

public class FixedWindowSize extends Application
{

    public static void main(String[] args)
    {
        Application.launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception
    {
        Pane p = new Pane();
        p.setBackground(new Background(new BackgroundFill(Color.RED, null, null)));
        p.setMinSize(6000, 6000); //Make this go out beyond window bounds.
        Scene s = new Scene(p);

        primaryStage.setScene(s);
        primaryStage.initStyle(StageStyle.TRANSPARENT);

        //This doesn't work
        //primaryStage.setMinWidth(1280);
        //primaryStage.setMaxWidth(1280);
        //primaryStage.setMinHeight(800);
        //primaryStage.setMaxHeight(800);

        //This should work.
        primaryStage.setWidth(1280);
        primaryStage.setHeight(800);

        primaryStage.show();
    }

}

【讨论】:

  • 我觉得自己很愚蠢,我没想到这一点……现在真的很有意义。非常感谢您的回答! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
  • 2014-07-04
  • 2020-06-07
  • 2021-11-22
相关资源
最近更新 更多