2010-05-09 51 views
8

我想設置一個JFrame的大小,使得contentPane是所需的大小。 JFrame.setSize()不考慮窗口裝飾,所以contentPane稍微小一些。窗口裝飾的大小是平臺和主題特定的,所以嘗試手動解釋它們是一個壞消息。設置一個ContentPane的大小(在JFrame內)

JFrame.getContentPane().setSize()失敗,因爲它被管理。

想法?

謝謝!

+0

這個問題可能會有幫助:http://stackoverflow.com/questions/2451252/swing-set-jframe-content-面積大小 – Ash 2010-05-09 06:31:56

回答

17

在Java 5和更高,這是最簡單的方法:

JFrame frame = new JFrame("Content Pane Size Example"); 
frame.getContentPane().setPreferredSize(new Dimension(400, 300)); 
frame.pack(); 
frame.setVisible(true); 

一如既往上述應在EDT執行。

0

如果你想這樣做你自己,然後在你的幀類型:

this.setLayour(null); 
this.pack(); 
Insets insets = this.getInsets(); 
this.setBounds(0,0, insets.left + width + insets.right, insets.top + height + insets.bottom); 
this.setLocationRelativeTo(null);