我正在做一个像Java游戏一样的焦土(对于我的考试项目:D),但是我有这个问题。我正在绘制一个窗口(JFrame),将布局设置为BorderLayout,应用一个扩展的JPanel并封装窗口,但是在打包之后,它在左边界和下边界处显示一些扩展的空白区域。 爪哇Swing包装窗口错误
这是我的主类:
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);
}
}
面板是我的JPanel类,它在构造函数中设置它的参数(512×512)优选的大小。我已经在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吗? http://www.sscce.org/ – 2009-03-07 11:10:38
我没有看到你提供的面板类的问题。你也可以通过在两个地方硬编码面板的首选尺寸来重复自己。不要这样做! – 2009-03-07 11:29:07
我有一个大小的变量与我用来设置rect的大小的窗口的大小,只是为了简单起见在这里删除它。 – Xunil 2009-03-07 11:32:39