首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到符号listModel.addElement

找不到符号listModel.addElement
EN

Stack Overflow用户
提问于 2016-12-22 21:39:52
回答 2查看 1.4K关注 0票数 1

我正在尝试创建我的第一个列表,但是我被一个错误困住了。

下面是用于列表模型的模板:

代码语言:javascript
复制
    private ListModel getListModel() {

    String[] arrayOfStrings = new String[3];
    arrayOfStrings[0] = "one";
    arrayOfStrings[1] = "two";
    arrayOfStrings[2] = "three";

    ListModel listModel = new DefaultListModel();

    for (int i=0;i<arrayOfStrings.length;i++) {
        listModel.addElement(arrayOfStrings[i]);            
    }   
}    

错误:

代码语言:javascript
复制
error: cannot find symbol
            listModel.addElement(arrayOfStrings[i]);            

symbol:   method addElement(String)

  location: variable listModel of type ListModel

我对使用界面和列表仍然很陌生。我下载了一个生成列表的示例代码,它们的代码非常相似。我遗漏了什么?我导入了示例代码导入的所有东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-22 21:43:00

当有疑问时,请转到API,因为它将显示所有内容。在这种情况下,API将向您展示接口ListModel<E>没有addElement(...)方法。您必须将变量声明为DefaultListModel<E>类型,因为这是具有此方法的实现。

参考文献:

  • API
  • API

尽管如此,您的方法仍然可以返回ListModel接口类型..。例如,

代码语言:javascript
复制
// method declared to return the interface, ListModel
private ListModel<String> getListModel() {
    String[] arrayOfStrings = {"one", "two", "three"};

    // make sure to use generic types
    DefaultListModel<String> listModel = new DefaultListModel<>();
    for (String txt : arrayOfStrings) {
        listModel.addElement(txt);
    }
    return listModel; // don't forget to return a result
}
票数 6
EN

Stack Overflow用户

发布于 2016-12-22 21:44:03

函数addElement(...)是在DefaultListModel中声明的,而不是在ListModel中声明的,因此只能在声明为DefaultListModel的对象上调用它。

使用DefaultListModel listModel = new DefaultListModel();修复您的代码。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41292050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档