gpt4 book ai didi

java - 如何在转换 JComboBox 之前检查它的类型?

转载 作者:行者123 更新时间:2023-11-30 05:48:42 37 4
gpt4 key购买 nike

我正在尝试创建一种方法来清除 JFrame 中的所有字段。但我遇到了来自 Eclipse 的警告。

private void clearAll(Container container) {

for (Component component : container.getComponents()) {
if (component instanceof JTextField) {
JTextField field = (JTextField) component;

field.setText("");
}

if (component instanceof JComboBox) {
JComboBox<String> box = (JComboBox<String>) component;
box.setSelectedIndex(-1);
}

if (component instanceof Checkbox) {
Checkbox box = (Checkbox) component;

box.setState(false);
}

if (component instanceof Container) {
clearTextFields((Container) component);
}
}
}

但我收到此警告消息:

Type safety: Unchecked cast from Component to JComboBox

现在我所有的组合框都是字符串,所以我认为它不会导致错误(我可能是错的),但我仍然想学习执行此操作的正确方法。

如果我将代码的 Combobox 部分更改为:

    if (component instanceof JComboBox) {
JComboBox box = (JComboBox) component;
box.setSelectedIndex(-1);
}

我收到不同的警告消息:

JComboBox is a raw type. References to generic type JComboBox should be parameterized

我是 swing 新手,所以我不知道所有的方法/功能。如果我重置一切的方法可以更容易/更好地完成,请通知我。我从网站上的另一篇文章中获得了清除所有字段的原始方法。

最佳答案

怎么样:

   if (component instanceof JComboBox) {
JComboBox<?> box = (JComboBox<?>) component;
box.setSelectedIndex(-1);
}

关于java - 如何在转换 JComboBox 之前检查它的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54367714/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com