ZBLOG

import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.JFrame; import java.awt.FlowLayout; public class MyFrame extends Frame { public static void createAndShow() { JFrame frame=new JFrame("推箱子游戏");

您的代码中有几个问题:

  1. MyFrame 类继承了 Frame,但在实现时却使用了 JFrame。这两者是不同的类,应该保持一致。

  2. 在创建窗口时,将 panel 添加到了 frame 上,但是又将其添加到了 panel1 上,而后者并没有被添加到任何地方。因此,在创建窗口时只需将 panel 添加到 frame 中即可。

  3. 您使用了 Swing 组件和 AWT 组件混合使用。虽然可以工作,但不建议这样做。建议您改用 Swing 组件来替换 AWT 组件。

修正后的代码如下:

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

public class MyFrame {
    public static void createAndShow() {
        JFrame frame = new JFrame("推箱子游戏");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);
        frame.setBackground(new Color(10, 60, 70));
        frame.setResizable(false);

        JPanel panel = new JPanel();
        panel.setBackground(Color.PINK);

        JButton button1 = new JButton("开始游戏");
        JButton button2 = new JButton("游戏规则");
        JButton button3 = new JButton("选择关卡");

        panel.add(button1);
        panel.add(button2);
        panel.add(button3);

        JLabel label = new JLabel();
        ImageIcon icon = new ImageIcon("IMG_20230607_191629.jpg");
        Image img = icon.getImage().getScaledInstance(300, 150, Image.SCALE_DEFAULT);
        icon.setImage(img);
        label.setIcon(icon);

        JLabel label2 = new JLabel("开始推箱子之旅吧!!!", JLabel.CENTER);

        frame.add(label, BorderLayout.PAGE_START);
        frame.add(panel, BorderLayout.PAGE_END);
        panel.add(label2);

        frame.setVisible(true);
    }

    public static void main(String[] args) {
       SwingUtilities.invokeLater(MyFrame::createAndShow);
    }
}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5144

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?