更具體地說,如何通過contentPane調整JFrame大小。如何通過子容器調整父容器大小?
下面是這種情況,我正在做一個400 * 400的JPanel,我需要它來適應JFrame。但是,如果我設置了JFrame setSize(400,400),由於上層窗口標題欄佔用的空間,JPanel的某些部分將被隱藏起來。
我知道我只能測量邊框和標題欄的大小。我只想知道是否有更好的方法去做。
這裏是一個同時Hovercraft Full Of Eels
和MadProgrammer
答案的解決方案。
public class Window extends JFrame {
private Window() {
createUI();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Window();
}
});
}
private void createUI() {
setContentPane(buildMainPanel());
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
private JPanel buildMainPanel() {
JPanel mainPanel = new JPanel();
mainPanel.setPreferredSize(new Dimension(500, 640));
mainPanel.setLayout(null);
mainPanel.add(new Canvas(0, 0));
return mainPanel;
}
}
您能否重讀我的問題,我更新了它。 – bijiDango
@bijiDango:按照MadProgrammer的建議。 –