我试图制作一个程序,我希望它能够最大限度地开始,但我也希望能够调整它的大小。唯一的问题是,每当我拨打frame.pack()
时,它会在我调用frame.setExtendedState(int)
java.awt.Frame.MAXIMIZED_BOTH
时快速恢复到我设置的大小,以便在我第一次使帧最大化时打开它。有办法防止这种情况吗?
答案 0 :(得分:2)
我想让它开始最大化,
这是状态的一次性设置,可以随时更改。
所以你应该可以使用:
frame.setExtendedState(JFrame.NORMAL);
frame.pack();
// or pack() / setExtendedState(...)
如果用户希望这样做,则不会阻止用户点击最大化图标。
答案 1 :(得分:0)
最大化和可调整大小,
public class Test {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame f = new JFrame();
f.setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);
final Timer tt = new Timer(68, e -> {
Dimension r = f.getSize();
f.setExtendedState(java.awt.Frame.NORMAL);
f.pack();
f.setSize(r);
});
tt.setRepeats(false);
tt.start();
f.setVisible(true);
});
}
}