如何为JPanel设置背景图像?

时间:2014-05-04 14:58:19

标签: jpanel

我试图为JPanel设置背景图像但是当我这样做时,它覆盖了我在JPanel上的按钮。我怎样才能使按钮保持在背景的顶部并且不被它覆盖?

1 个答案:

答案 0 :(得分:0)

绘制背景,然后将组件添加到面板中。

class SomePanel extends JPanel {
    private BufferedImage image;

    public SomePanel() {
        try {
            image = ImageIO.read(getClass().getResource("/resources/image.png"));
        } catch (IOException ex) {}
        add(new JButton("Hello"));
    }
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
    }
    @Override
    public Dimension getPreferredSize() {
        return new Dimension(500, 500);
    }
}

或者只使用带有图标的标签,为标签设置布局管理器,并将所有组件添加到标签中。