java - 找不到符号 listModel.addElement

标签 java swing interface jlist

我正在尝试创建我的第一个列表,但遇到错误。

这是我用于列表模型的模板:

    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]);            
    }   
}    

错误:

error: cannot find symbol
            listModel.addElement(arrayOfStrings[i]);            

symbol:   method addElement(String)

  location: variable listModel of type ListModel

我对使用接口(interface)和列表还是陌生的。我下载了一个制作列表的示例代码,他们的代码非常相似。我错过了什么?我导入了示例代码导入的所有内容。

最佳答案

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

引用资料:

话虽如此,您的方法仍然可以返回 ListModel 接口(interface)类型...例如,

// 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
}

关于java - 找不到符号 listModel.addElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41292050/

相关文章:

java - 如何使用高性能解析器在 Java 中解析 JSON?

java - 使用 JSTL 将长时间戳格式化为日期

java - 禁用 dbcp 连接池的重试

java - 对 JComboBox 使用 setEditable() 时对齐会重置

java - 如何从命令提示符读取 java swing 线程、事件完成状态

java - 一个类实现两个或多个接口(interface)是一个好习惯吗?

android - 在 Kotlin 中将接口(interface)作为参数传递

java - 如何为 JTextField 设置动态宽度?

java - 将选定的 JRadioButton 中的文本显示到 JTextArea

java - 从自定义数据结构类返回流