【发布时间】:2013-12-18 02:21:17
【问题描述】:
我正在创建一个井字游戏,其中网格中的一个正方形由我创建的一个名为 Square 的类表示。它扩展了 JButton,但我添加了一个名为 pressable 的布尔字段,用于说明是否可以在游戏中按下按钮。如果按钮已经有一个字母,那么它不能被按下。我想在我的 actionPerformed() 方法中实现代码来检查 pressable 变量,如果 pressable 为假,它不会改变正方形的字母。我在我的 ActionEvent 上使用 getSource() 方法来给我一个对按下的正方形的引用。因此,我需要将 Object 转换为 Square 类型,以便可以访问其 pressable 字段。但是当我这样做时,我收到以下错误:java.lang.ClassCastException: javax.swing.JButton cannot be cast to tic.tac.toe.Square 这对我来说毫无意义。在我需要每个方块都有一个 pressable 字段之前,我使用了一个 JButton,它工作得很好。但是由于 Square 继承了 JButton,我认为它也可以工作。我怎样才能解决这个问题?
【问题讨论】:
-
欢迎来到 SO。请阅读这些链接(stackoverflow.com/questions/how-to-asksscce.org),了解如何发布问题。这样你会得到更好的结果。提示(显示一些代码会有所帮助)。 stackoverflow.com/help/on-topic
标签: java swing casting jbutton classcastexception