你的代码中创建了一个 Frame
对象,但是没有将 panel
添加到 frame
中,因此界面上不会显示任何内容。可以使用以下代码将 panel
添加到 frame
中:
frame.add(panel);
另外,在 Swing 中一般推荐使用 JFrame
而不是 AWT 的 Frame
,因为后者已经被标记为过时的 API。
修改后的代码如下:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MyFrame extends JFrame {
public static void createAndShow() {
JFrame frame = new JFrame("推箱子游戏");
frame.setSize(400, 400);
frame.setBackground(new Color(85, 60, 70));
frame.setResizable(false);
JPanel panel = new JPanel();
JButton button1 = new JButton("开始游戏");
JButton button2 = new JButton("游戏规则");
JButton button3 = new JButton("选择关卡");
panel.add(button1);
panel.add(button2);
panel.add(button3);
// 将 panel 添加到 frame 中
frame.add(panel);
// 设置窗口关闭操作为退出程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 显示窗口
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(MyFrame::createAndShow);
}
}