gpt4 book ai didi

java - java 中我的框架上的 Jbutton 位置不起作用

转载 作者:行者123 更新时间:2023-12-01 11:58:13 27 4
gpt4 key购买 nike

我现在正在制作我的第一个 2d 游戏,并正在制作一个菜单,其中包含一个名为“New Game”的 Jbutton 和一个大标题。

问题是按钮一直列在框架顶部,如下所示:

enter image description here

尝试过使用 setbounds 来做到这一点,但这不起作用。我的按钮的一些代码:

    private void loadbuttons() {

JButton button = new JButton("New Game");
button.setBackground(Color.black);
button.setBorderPainted(false);
button.setForeground(Color.green);
button.setLayout(null);
button.setBounds(100, 0, 220, 500);

add(button);

}

做错了什么?希望它位于标题下方:)

编辑

我在这段代码中制作了 2 个框架:

public Application() {

Menu(); // Game Ui method runs under

if (startgame == 1) {
Gameboard();
}

}

private void Gameboard() {
add(new Board()); // We add the board to the center of the JFrame container
setSize(555, 578);
setTitle("Pacmania"); // Sets title
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // Sets the window on the center of the screen

}

private void Menu() {
add(new Menu(startgame)); // We add the menu to the center of the JFrame container
setSize(400, 520);
setTitle("Pacmania"); // Sets title
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // Sets the window on the center of the screen

}

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
Application ex = new Application();
ex.setVisible(true); // Starting and showing the board
}
});
}

我在这里做错了什么吗?

编辑2:

这是我放置 Jbutton 的代码。这个类用于在我的菜单上制作标题 + 按钮,如果我稍后要获取一些图像。

public class Menu extends JPanel {

private int startgame;
private Image background;


public Menu(int startgame) {
this.startgame = startgame;
setFocusable(true);
setDoubleBuffered(true);
setBackground(Color.BLACK);

loadbuttons();

}

private void loadbuttons() {

JLabel lbj = new JLabel("Pacmania");
add(lbj);

JButton button = new JButton("New Game");
button.setBackground(Color.black);
button.setBorderPainted(false);
button.setForeground(Color.green);
button.setLayout(null);
add(button);



}

public void paint(Graphics g) {
super.paint(g);

Graphics2D g2d = (Graphics2D)g;

if (startgame == 0) {

g.setColor(Color.green);
Font big = new Font("Serif", Font.BOLD, 40);
Font small = new Font("Serif", Font.BOLD, 20);

String msg = "Pacmania";
FontMetrics metr = this.getFontMetrics(big);
g.setFont(big);
g.drawString(msg, (400 - metr.stringWidth(msg)) / 2,
520 / 4);
}

}

}

我也想要它看起来像:

enter image description here

最佳答案

使用网格袋约束。 Here's一个很好的教程。

关于java - java 中我的框架上的 Jbutton 位置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199105/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com