我需要在我的程序中设置背景图像。主GUI的结构是:
JFrame 包含 - 带有 BoxLayou 的 JPanel 包含...等
我需要在第一个 JPanel 后面放一张图片,但我不知道怎么做。
我写了这段代码:
JPanel background = new JPanel();
JLabel labl = new JLabel("This is a dummy label this is a dummy label");
background.add(labl);
// TODO insert an image in background.
Component VERT_RA = Box.createRigidArea(new Dimension(0, 10));
Component HORI_RA = Box.createRigidArea(new Dimension(10, 0));
JPanel main = new JPanel();
main.setLayout(new BoxLayout(main, BoxLayout.PAGE_AXIS));
add(background);
add(main);
main.setOpaque(false);
main.add(VERT_RA);
JPanel a = new JPanel();
a.setLayout(new BoxLayout(a, BoxLayout.LINE_AXIS));
main.add(a);
main.add(VERT_RA);
a.add(HORI_RA);
JPanel services = new JPanel();
services.setLayout(new BoxLayout(services, BoxLayout.PAGE_AXIS));
a.add(services);
a.add(HORI_RA);
JPanel right = new JPanel();
right.setLayout(new BoxLayout(right, BoxLayout.PAGE_AXIS));
a.add(right);
a.add(HORI_RA);
JLabel lbl = new JLabel("SERVIZI");
lbl.setFont(new Font("SansSerif", Font.BOLD, 30));
lbl.setAlignmentX(Component.CENTER_ALIGNMENT);
lbl.setPreferredSize(new Dimension(100, 100));
services.add(lbl);
但如果我运行它,我只能看到“主”JPanel(“SERVIZI”标签)。如果我指定 setSize(x,y) 方法,我只能看到背景 JPanel。
有什么方法可以在我的布局中添加背景图像,而无需指定尺寸?
我也尝试使用 setLayou(null) 但我必须手动指定所有组件的尺寸(没用)。