所以我對GUI很新,遇到了問題,無論我將我的首選大小設置爲(通過setPreferredSize(new Dimension(width, height))
),它將寬度和高度都加上10
。我在想,爲什麼會發生這種情況?是的,我知道這是「首選尺寸」,但肯定有一種方法可以防止這種情況發生。我可以通過簡單地從寬度和高度中減去10
,然後將其傳遞給方法來解決這個問題,但我想知道發生了什麼。什麼是壓倒我的首選尺寸? (JPanel)
我的(相關的)代碼:
主要方法:
public static void main(String[] args)
{
final App app = new App(500, 500);
JFrame frame = new JFrame("Block Stacker 3000");
frame.getContentPane().add(app);
frame.pack();
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
System.out.println(app.getSize());
app.start();
}
應用構造(擴展JPanel):
public App(int width, int height)
{
this.width = width;
this.height = height;
System.out.println(width + " " + height);
setPreferredSize(new Dimension(width , height));
setBackground(Color.CYAN);
}
當運行時,其輸出如下:
500 500
java.awt.Dimension[width=510,height=510]
另外,我試過使用setMinimumSize()
和setMaximumSize()
,但都沒有影響任何東西。
不,那不行。然而,你的評論讓我亂搞了更多的代碼,並且我發現如果我用「setSize(500,500)」設置大小,那麼「setResizable(false);」最後「pack();」它似乎完美地工作,但我不知道爲什麼。它似乎沒有任何其他方式。 – user1945612
爲了儘快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –
謝謝,下次還會去做 – user1945612