添加到另一个JPanel后,JPanel变小(很多)

时间:2018-02-04 14:09:32

标签: java

在我将画布(蓝色画布)添加到canvas2(绿色画布)后,画布非常小,我无法说明原因。帮我!这是我的代码:

public static void main(String[] args) {

    JPanel canvas = new JPanel();
    JPanel canvas2 = new JPanel();

    canvas.setBounds(40, 40, 200, 200);
    canvas.setBackground(Color.BLUE);

    canvas2.setBounds(40, 40, 200, 200);
    canvas2.setBackground(Color.GREEN);
    canvas2.add(canvas);

    JFrame window = new JFrame();
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setBounds(30, 30, 600, 600);
    window.getContentPane().add(canvas2);
    window.setVisible(true);
}

结果:

enter image description here

2 个答案:

答案 0 :(得分:1)

您的代码忽略了容器布局管理器--JLrame的contentPane的BorderLayout和JPanel的FlowLayout。添加到这些容器的组件将由这些布局管理器调整大小。

您可以在此处找到布局管理器教程:Layout Manager Tutorial,您可以在此处找到指向Swing教程和其他Swing资源的链接:Swing Info

答案 1 :(得分:0)

canvas(蓝色JPanel)完全为空。因此,LayoutManager将其调整为可能的最小尺寸。如果你添加一些组件,它会变大。或者,你可以做

 canvas.setPreferredSize(new Dimension(200, 200));

但出于几个原因,这通常是一个坏主意。