【问题标题】:Maximize frame and deactivate resizing最大化框架并停用调整大小
【发布时间】:2017-04-11 09:37:43
【问题描述】:

我想要一个最大化的框架,然后我想阻止调整大小。为此,我编写了以下代码:

public PaintingWindow() {
    initComponents();
    this.setExtendedState(MAXIMIZED_BOTH);
    this.setResizable(false);
}

问题:如果我添加 setResizeable(false),则窗口不再最大化。没有它,它就可以工作。

我该如何逃避? 谢谢大家的回答!

【问题讨论】:

  • 考虑看看全屏独占模式
  • 它在这里工作(Windows 10、Java 8),在setExtendedState(..) 之前或之后调用setResizable(..)。但是在那里,换个方式试试。 setReiszable(..) 将更改窗口的“镀铬”(环绕在外面),这可能会使操作系统误以为它应该从全屏返回。更一般地说:为了尽快获得更好的帮助,请发帖 minimal reproducible exampleShort, Self Contained, Correct Example

标签: java swing jframe maximize


【解决方案1】:

我遇到了与 JFrame 类似的问题,我能够在 frame.setResizable(false); 之前通过 frame.setVisible(true); 解决它

JFrame frame = new JFrame("MyFrame");
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setSize(screenSize);
frame.setVisible(true); 
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

【讨论】:

  • 只是为了修改,setExtendedState 的Javadoc 说:“如果框架在屏幕上不可见,则可能会或可能不会生成事件。...稍后,当 setVisible(true) 方法被调用时,框架将尝试应用此状态。” - 但如果在 setVisible 之前 resizable 为 false,则应用状态失败。
猜你喜欢
  • 2018-03-03
  • 2012-05-02
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多