我如何使用Jlayeredpane将按钮放在背景之上而不是它之下?

时间:2014-04-02 20:40:59

标签: java swing layout background jlayeredpane

我正试图在3 JButton之后设置图像背景。到目前为止,它正在绘制背景,然后将按钮放在下方,没有背景(拉伸窗口可以看到)。我如何使用JLayeredPane将背景图像放到后面? 我的印象是JLayeredPane是最简单的方法。我错了。

package main;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.*;


public class Galaga extends JFrame implements ActionListener, WindowListener{

    private JButton startButton, highScoreButton, optionsButton;

    public JPanel buttonPanel, optionsPanel, highScorePanel;

    public Galaga() {
        startButton = new JButton("Start Game");
        highScoreButton = new JButton("High Scores");
        optionsButton = new JButton("Options");

        buttonPanel = new JPanel();
        buttonPanel.add(new JLabel(new ImageIcon("images/Spacebackground.png")));
        buttonPanel.setLayout(new FlowLayout());

        buttonPanel.add(startButton);
        buttonPanel.add(highScoreButton);
        buttonPanel.add(optionsButton);

        startButton.addActionListener(this);
        highScoreButton.addActionListener(this);
        optionsButton.addActionListener(this);
        addWindowListener(this);

        add(buttonPanel);
    }

1 个答案:

答案 0 :(得分:2)

你只需在标签上设置一个布局管理器,然后将按钮添加到它......

    JLabel label = new JLabel(new ImageIcon("images/Spacebackground.png"));
    label.setLayout(new FlowLayout());

    label.add(startButton);
    label.add(highScoreButton);
    label.add(optionsButton);

    add(label);