在我将画布(蓝色画布)添加到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);
}
结果:
答案 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));
但出于几个原因,这通常是一个坏主意。