更具体地说,如何通过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的建议。 –