【发布时间】:2010-10-11 22:10:01
【问题描述】:
我正在用 Java 制作类似 Scorched Earth 的游戏(用于我的考试项目:D),但我遇到了这个问题。我正在绘制一个窗口(JFrame),将布局设置为 BorderLayout,应用扩展的 JPanel,并打包窗口,但打包后,它在左侧和底部边框处显示了一些扩展的空白。
这是我的主要课程:
public class Main {
public static void main(String[] args) {
javax.swing.JFrame frame = new javax.swing.JFrame("game title");
panel p = new panel(new java.awt.Dimension(512, 512));
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new java.awt.BorderLayout());
frame.getContentPane().add(p, java.awt.BorderLayout.CENTER);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
}
}
panel 是我的 JPanel 类,它在构造函数中将它的首选大小设置为参数 (512x512)。我已经在 Windows 和 Linux 上对此进行了测试,并且在这两个地方都出现了错误,并且白色间隙的大小因操作系统而异。
这是我的面板类:
class panel extends javax.swing.JPanel{
panel(java.awt.Dimension size){
setPreferredSize(size);
}
public void paint(java.awt.Graphics g){
g.setColor(java.awt.Color.BLUE);
g.fillRect(0, 0, 512, 512);
}
}
请帮忙!
【问题讨论】:
-
您没有告诉我们您的小组课程。它有什么作用?构造函数参数有什么作用?您能否将问题简化为 SSCCE? sscce.org
-
我没有看到您对提供的 Panel 类的问题。您还可以通过在两个地方硬编码面板的首选尺寸来重复自己。不要那样做!
-
我有一个大小变量,其中包含我用来设置矩形大小的窗口大小,为了简单起见,这里将其删除。