当前位置: 首页 > 知识库问答 >
问题:

Java-开始按钮和新的JFrame

况鸿雪
2023-03-14

我必须确保当按下开始游戏按钮时会打开游戏框架。

这是菜单:

这是控制器类:

@Override
public void actionPerformed(ActionEvent e) {
    JRadioButton source = (JRadioButton)e.getSource();
    JButton sourceButton = (JButton)e.getSource();

    if(source.isSelected() && source.getText().equals("Custom")){
        MenuView.heightLabel.setEnabled(true);
        MenuView.height.setEnabled(true);

        MenuView.widthLabel.setEnabled(true);
        MenuView.width.setEnabled(true);

        MenuView.minesLabel.setEnabled(true);
        MenuView.mines.setEnabled(true);
    }
    else{
        MenuView.heightLabel.setEnabled(false);
        MenuView.height.setEnabled(false);

        MenuView.widthLabel.setEnabled(false);
        MenuView.width.setEnabled(false);

        MenuView.minesLabel.setEnabled(false);
        MenuView.mines.setEnabled(false);
    }

    if(source.getText().equals("Beginner")){
        if(sourceButton.getText().equals("Start Game")){
            MenuView.fullRandom = new FullRandomGrid(ROW_BEGINNER, COLUMN_BEGINNER, MINE_BEGINNER);
            Frame frame = new Frame(MenuView.fullRandom);
            frame.setSize(270, 380);
            frame.setResizable(false);
            frame.setVisible(true);

        }
    }   
}

问题是,当我按下开始游戏时,我有这个异常:

线程中的异常"AWT-EventQuue-0"java.lang.ClassCast异常:javax.swing.JButton不能转换为javax.swing.JRadioButton

共有2个答案

谭学名
2023-03-14

问题出现在第< code >行JRadioButton source =(JRadioButton)e . getsource(); -您正在按下JButton对象,这将导致事件,然后您将错误的JButton类型转换为JRadioButton。

刘胜泫
2023-03-14

问题就在这一行:

JRadioButton source = (JRadioButton)e.getSource();

抛出以指示代码已尝试将对象强制转换为其不是实例的子类。

JRadoButton不是e.getSource()的子类,因此将抛出ClassCastExc的异常

JRadioButton source = (JRadioButton)e.getSource();
JButton sourceButton = (JButton)e.getSource();

如何<代码>e。getSource()可以在这两种关系中强制转换,没有子-父关系。

 类似资料:
  • 当使用Intent启动一个新活动时,活动顶部的栏是否会自动提供后退按钮?我假设它是这样工作的,但没有看到它。如果它没有自动出现,需要什么来使它出现?

  • 所以我试图让我的按钮在我的导航抽屉碎片中打开新的活动,但是我的mainactivity中有什么东西坏了。java 我的mainactivity.java.... 我的奖励碎片... } 问题是它在下有一个红色下划线,我不知道如何修复它 我试过了所有的办法,这就是我目前所拥有的… } 我的setContentView是鲜红的,我的findViewByID是红色的,最后是(rewardsFragmen

  • 我试图发布一个应用程序到谷歌播放商店。我已经通过了所有必需的步骤在谷歌播放控制台(play.google.com/apps/publish) 但是,当我单击左侧的应用程序发布,然后单击“生产”下的“编辑发布”,添加APK,然后单击底部的“审阅”时,我会进入“确认卷展到生产:1.0”页面,底部有熟悉的“开始卷展到生产”按钮。那个按钮是灰色的,所以我不能点击它。页面顶部的评论摘要说“此版本已准备就绪。

  • 我是全新的,我唯一的编程经验是PLC; s和HMI的,所以我很抱歉不能弄清楚什么可能是一个简单的任务。但是我找不到任何CURRENT视频或工作示例,说明如何简单地将图像放置在主活动上,并在按下后打开另一个活动。我正在使用最新版本的Android Studio11.0,并试图学习静态编程语言。我已经附上了我到目前为止的项目代码,正如你所看到的,我刚刚开始这个项目。提前感谢您的任何帮助。 Java文件

  • 在此处输入图像描述 我想在我的项目中使用开闭面板,就像所附的照片一样。我连续使用多个面板,有时我想最小化面板。我如何使用它,你能在java中添加类似代码的git链接吗?或者你知道这种类型的按钮和面板的名称吗?

  • 我想在记录器服务运行时显示通知。用户应该能够在通知中直接暂停或停止记录器。所以我在通知中添加了两个按钮,并实现了一个BroadcastReceiver来处理按钮点击。 它几乎像我想要的那样工作,但有一个问题我无法解决。当用户单击按钮时,我想显示活动。这是我的代码: 目前执行每个按钮的正确操作,但如果用户单击时应用程序不可见,则不显示该应用程序。如何实现这一点? 有必要在这里实现BroadcastR