gpt4 book ai didi

java - 窗口右侧和底部边缘的空白

转载 作者:行者123 更新时间:2023-12-02 05:09:57 25 4
gpt4 key购买 nike

创建一个应该是全黑的窗口后,右边缘和下边缘有白色。我可能做错了什么?

这是我初始化窗口的构造函数:-

    public Panel()
{
Thread t = new Thread(this);
addKeyListener(this);
setFocusable(true);
this.setPreferredSize(new Dimension(gameWidth, gameHeight));
JFrame f = new JFrame("AlienBusters");
f.add(this);
f.pack();
f.setLocationRelativeTo(null);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
t.start();
}

这是我将窗口设为黑色的绘制方法:-

    @Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(0, 0, gameWidth, gameHeight);
}

最佳答案

五件事...

  1. pack之后调用setResizing,不是一个好主意,setResizing可以改变框架边框大小,从而影响可用内容大小。 .
  2. 使用KeyListener,说真的,请参阅How to Use Key Bindings并让自己免于头痛......
  3. 依靠魔数(Magic Number)而不是英制值,g.fillRect(0, 0, gameWidth, gameHeight); 应该是 g.fillRect(0, 0, getWidth(), getHeight ()); 或者更好,只需使用 setBackground(Color.BLACK) 并通过 super.paintComponent...和 ​​paintComponent 免费获取它 应该 protected ;)
  4. 调用setPreferredSize。这意味着可以更改大小,但这可能不是您真正想要的。相反,请重写 getPreferredSize。请参阅Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?了解更多详情
  5. 在组件的构造函数中构建框架,组件不应该关心它将如何显示,而应该只关注它的工作。

关于java - 窗口右侧和底部边缘的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27416407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com