我正在尝试阻止我的应用调整大小并完成以下操作(基于stackoverflow的宝贵建议):
MyFrame frame = new MyFrame("LabelTest");
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这很好用......但是一旦我点击标题栏,应用程序就会变为: 并且不再可调整大小。
如何在标题栏上禁用操作?
我完成了以下操作以扩展我的应用程序:
class SwingApplication
{
public static void main(String args[])
{
MyFrame frame = new MyFrame("LabelTest");
final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setSize(screenSize);
frame.setVisible(true); // FIRST visible = true
frame.setResizable(false); // THEN resizable = false
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
输出1:
但是,一旦我最小化并恢复应用程序,它就会占用整个屏幕。任何修复使应用程序显示为输出1 ?
我最小化并恢复后,输出2 :
答案 0 :(得分:0)
试试这个:
JFrame frame = new JFrame();
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
frame.setAlwaysOnTop(true);
frame.setResizable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
答案 1 :(得分:0)
不确定这是否是避免这种情况的正确方法,这里是一个简单的黑客,以保持屏幕大小足够大,以避免被工具栏隐藏。我只是将高度设置为略小于屏幕尺寸。不确定它是否正是您正在寻找的,但您可以尝试一下。
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
class SwingApplication {
public static void main(String args[]) {
JFrame frame = new JFrame("LabelTest");
final Dimension screenSize = Toolkit.getDefaultToolkit()
.getScreenSize();
int width = (int)screenSize.getWidth();
int height = (int)screenSize.getHeight();
Dimension newDim = new Dimension(width, height - 40);
frame.setSize(newDim);
frame.setVisible(true); // FIRST visible = true
frame.setResizable(false); // THEN resizable = false
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}