JFrame没有显示任何内容

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (63)

我正在尝试在GUI中制作一个RPG游戏,但它并不是那么顺利。在我添加JButton之前,所有内容都工作并在窗口中显示。我不确定添加JButton后发生了什么。应该在灰色区域显示标题,在蓝色区域显示按钮。我已经尝试正常运行并使用调试器运行,没有显示任何文本或按钮。我在这里一步一步地遵循教程,我没有看到任何不合适的地方。(我知道我已经更改了变量名称)。

我在这做错了什么?我需要添加额外的东西吗?

import javax.swing.*;
import java.awt.*;

public class Game {

    JFrame window;
    Container c;
    JPanel titlePanel;
    JPanel startButtonPanel;
    JLabel titleLabel;
    JButton startButton;
    Font titleFont = new Font("Cooper Black", Font.PLAIN, 90);
    Font buttonFont = new Font("Cooper Black", Font.PLAIN, 32);

    public static void main(String[] args) {
        new Game();
    }

    public Game() {

        //Main Window
        window = new JFrame();
        window.setSize(800, 600);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.BLACK);
        window.setLayout(null);
        window.setVisible(true);
        c = window.getContentPane();

        //Title Panel
        titlePanel = new JPanel();
        titlePanel.setBounds(100, 100, 600, 150);
        titlePanel.setBackground(Color.GRAY);

        titleLabel = new JLabel("TEXT RPG");
        titleLabel.setForeground(Color.WHITE);
        titleLabel.setFont(titleFont);

        //Start Button Panel
        startButtonPanel = new JPanel();
        startButtonPanel.setBounds(300, 400, 200, 100 );
        startButtonPanel.setBackground(Color.BLUE);

        //Start Button
        startButton = new JButton("START");
        startButton.setBackground(Color.BLACK);
        startButton.setForeground(Color.WHITE);
        startButton.setFont(buttonFont);


        //Add Elements to Window
        titlePanel.add(titleLabel);
        startButtonPanel.add(startButton);

        //Add Elements to Container
        c.add(titlePanel);
        c.add(startButtonPanel);

    }
}
提问于
用户回答回答于
startButton.setSize(int x, int y); 

我建议迁移到JavaFX和Scene Builder。

最好把任何ActionListener添加到你的startButtonPane,删除按钮。

扫码关注云+社区

领取腾讯云代金券