我正在尝试一种方法来清除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);
}
}
}
但是我收到此警告消息:
类型安全:未经检查的从Component到JComboBox的投射
现在我所有的组合框都是字符串,所以我认为它不会导致错误(我可能是错误的),但是我仍然想学习执行此操作的正确方法。
如果我将代码的组合框部分更改为:
if (component instanceof JComboBox) {
JComboBox box = (JComboBox) component;
box.setSelectedIndex(-1);
}
我收到另一条警告消息:
JComboBox是原始类型。泛型JComboBox的引用应参数化
我是新手,所以我不知道所有的方法/功能。如果可以轻松/以更好的方式完成我的所有重置方法,请通知我。我得到了清除网站上其他帖子中所有字段的原始方法。
答案 0 :(得分:1)
怎么样:
if (component instanceof JComboBox) {
JComboBox<?> box = (JComboBox<?>) component;
box.setSelectedIndex(-1);
}