java - 获取特定类型的 JComponent

标签 java swing jcomponent instanceof

我正在使用 JComponent 数组变量来保存 JTextField 和 JComboBox 组件。是否有内置方法来检查 JComponent 的类型以用于条件语句?我似乎无法在 API 中找到合适的方法。

最佳答案

这是一种语言特性,而不是 API。

如果你想检查blah是否是SomeClass的一个实例,你只需要写

if (blah instanceof SomeClass) {
    //do stuff
}

通常你会想把它当作属于那个类,所以你会施放它:

if (blah instanceof SomeClass) {
    SomeClass someBlah = (SomeClass) blah;
    //do stuff
}

您知道转换不会失败,因为您使用 instanceof 进行了检查。

请注意,这不是检查确切 类型,而是检查blah 是否与SomeClass 兼容;即,它是 SomeClass 还是 SomeClass 的子类。

还应该说,大多数人不太关心instanceof,将其视为应该谨慎使用的东西。它通常是糟糕设计的副作用。 (但不是总是,我说。)

关于java - 获取特定类型的 JComponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26391803/

相关文章:

Java/Swing 离屏渲染(Cobra HTMLPanel -> BufferedImage)问题 : Component doesn't finish redrawing first

java - Java 中的正则表达式以 '_' 开头,以空格/换行符结尾

java - 我将如何编写一个获取 <script> 标记内容的 Java 正则表达式?

java - 从字段元素获取包名称和参数化类型 - 注释处理器

java - JFrame 有时根本不出现?

Java 在构造函数中实现 ActionListener 方法

java - 无法更新卡中显示的值 - Android 的 Cardslib 库

java - 附加新字符串时,JTextPane 中的彩色文本变得困惑

java repaint 屏蔽了 jbutton

java - 创建并覆盖一个形状以适合 JPanel?