在Mac笔记本电脑上工作时,我最近注意到程序启动时有时帧会缩小。它确实会收缩约70-90%。
它可以在PC上正常运行,但不能在我尝试过的任何Mac上运行。我试图将其范围缩小到(下面的代码),但是从这里我找不到任何不起作用的原因。我的一些朋友认为这可能与Mac自己的窗口管理器有关。我不知道。
我只是FYI的新手。
public class Worms extends JFrame{
public static void main(String[] args) {
new Worms();
}
private JButton startGame;
public Worms(){
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Container contentPane = this.getContentPane();
//if i change it so it uses a new dimension not "screenSize" it works
contentPane.setPreferredSize(screenSize);
JPanel menu = new JPanel();
startGame = new JButton("Start Game");
menu.add(startGame);//or if i remove this button it also works
this.add(menu);
this.pack();
this.setVisible(true);
}
}
它从“全屏”开始,然后缩小到左上角。如果我将其拖回正常大小,它将正常工作。
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Container contentPane = this.getContentPane();
//if i change it so it uses a new dimension not "screenSize" it works
contentPane.setPreferredSize(screenSize);
内容窗格应该不具有优选大小设置为屏幕尺寸。太大,无法说明框架装饰或“镀铬”。
这是一种应该在整个系统之间可靠工作的不同方法。它设置框架的扩展状态。
import java.awt.*;
import javax.swing.*;
public class Worms extends JFrame{
public static void main(String[] args) {
new Worms();
}
private JButton startGame;
public Worms(){
JPanel menu = new JPanel();
startGame = new JButton("Start Game");
menu.add(startGame);
this.add(menu);
this.pack();
// this should do what you seen to want
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
// this is just polite..
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setVisible(true);
}
}
请注意,应该在事件调度线程上创建和更新Swing / AWT GUI。为了简单起见,上面的示例没有添加。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句