我几周前开始编码,目前正在尝试使用Swing和AWT为游戏创建Java GUI。我创建了下面的代码。
public class UI {
JFrame frame = new JFrame();
JPanel backgroundPanel;
JLayeredPane buttonPanel;
JButton play = new JButton("Play!");
JLabel background;
public UI() {
backgroundPanel = new JPanel(new BorderLayout());
ImageIcon imgBackground = new ImageIcon(this.getClass().getResource("/img/connect4_4.png"));
background = new JLabel("", imgBackground, JLabel.CENTER);
backgroundPanel.add(background, BorderLayout.CENTER);
backgroundPanel.add(play, BorderLayout.NORTH);
frame.add(backgroundPanel);
frame.setTitle("Connect 4");
frame.setSize(450, 450);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
我用这段代码创建了一个面板,它有一个背景图像和一个位于屏幕顶部的播放按钮。然而,我想做的是把播放按钮放在图像的中心,它不需要全屏大小,而只是一个固定的大小(也许是50x50像素)。我该怎么做?
1条答案
按热度按时间qq24tv8q1#
你是在正确的轨道上有一个JLayeredPaddle字段。但您的代码目前没有使用它。
你会想给给予那个JLayeredList一个OverlayLayout。当组件相互重叠时,大多数其他布局都没有定义它们的行为。
将背景组件和按钮都放置在JLayeredFrame中,然后仅将JLayeredFrame添加到框架中: