我正在做一個像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