用另一个类的ArrayList填充JComboBox

韦德

我正在尝试一些自我指导,并且正在开发一个小型应用程序,该程序可从文本文件中读取详细信息,并以JComboBox进行选择。该计划是要能够从组合框中选择一个项目,按一下按钮,然后弹出弹出消息,其中显示带有文本的文本,具体取决于选择,但是我偏离了主意。

目前,在编译时,组合框显示了我认为是某种异常的东西。它说[Ljava.lang.Object;@175078b

我在这里做错了什么?

这是具有的类ArrayList

import java.io.File;
import java.io.FileNotFoundException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.Scanner;

public class Stuff {

    private ArrayList<String> list;
    private String name;

    private ArrayList<String> getList() {
        return list;
    }

    private void setList(ArrayList list) {
        this.list = list;
    }

    public Stuff() {
        readNames();
    }

    public void readNames() {
        File file = new File("Names.txt");
        try {
            ArrayList<String> list = new ArrayList<>();

            Scanner in = new Scanner(file);
            while (in.hasNextLine()) {
                list.add(in.nextLine());
            }
            Collections.sort(list);
//            for (int i = 0;  i < list.size();++i){            
//        System.out.println(list.get(i));
//            }
            in.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

这是带有GUI的类:

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.util.ArrayList;
import javax.swing.*;


public class GUI extends JFrame{
    private JLabel label = new JLabel("Who is the most awesome?");
    private JComboBox box = new JComboBox();
    private JFrame frame = new JFrame();
    private JTextArea text = new JTextArea();
    private JButton button = new JButton("Press Me");
    private JPanel panel = new JPanel();
    private ArrayList<Stuff> list = new ArrayList<>();


    private JFrame getFrame(){
        return frame;
    }
    private ArrayList<Stuff> getList(){
        return list;
    }
    private void setList (ArrayList<Stuff> list){
        list = list;
    }



    public GUI(){        
        buildGUI();
    }

    private void buildGUI(){           
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        panel.setLayout(new FlowLayout());
        panel.add(label);
        panel.add(box);
        panel.add(button); 
        box.addItem(list.toArray());

        frame.add(text);
        frame.add(panel, BorderLayout.CENTER);
        frame.setSize(400,100);
        frame.setVisible(true);
    }
}
大卫·叶(David Yee)

您的问题所在: box.addItem(list.toArray());

a的addItem()方法JComboBox要求Object以a作为参数。通常,将一个String对象用作参数。相反,当您确实打算添加列表中的每个项目时,您正在尝试将实际的列表引用添加到组合框。

相反,您应该按如下所示在列表中添加各个项目:

for(Stuff stuff : list) {
    box.addItem(stuff.getName());
}

编辑:重读你原来的措辞问题,我想你第二个代码片断关于GUI不应该使用其他ArrayListStuff,如果你真的打算使用ArrayList的的一个实例Stuff对象。因此,您应该首先更改:

private ArrayList<Stuff> list = new ArrayList<>();

private Stuff = new Stuff();

并更改for循环以遍历stuff.getList()而不是list为了澄清起见,for循环可能类似于:

for(String detail : stuff.getList()) {
    box.addItem(detail); // add each extracted detail from the text file that was stored in the list of the stuff object
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用另一个类的ArrayList填充JComboBox

来自分类Dev

用另一个 JComboBox 的选择填充一个 JComboBox

来自分类Dev

如何在Java eclipse中依赖另一个JCombobox填充JCombobox

来自分类Dev

在另一个类中填充对象

来自分类Dev

用另一个列表熊猫填充NA

来自分类Dev

用另一个查询表填充NaN

来自分类Dev

从另一个类中的arrayList获取元素

来自分类Dev

从另一个类访问Arraylist内容?

来自分类Dev

如何从另一个类访问ArrayList

来自分类Dev

从另一个类访问ArrayList

来自分类Dev

如何从另一个类访问ArrayList

来自分类Dev

从另一个类获取ArrayList

来自分类Dev

如何从另一个类访问ArrayList?

来自分类Dev

访问另一个类的 ArrayList

来自分类Dev

关于访问另一个类的arraylist的问题

来自分类Dev

使用另一个类中的 jbutton 操作将 jcombobox 变量从一个类传递到另一个类

来自分类Dev

填充一个具有另一个类作为属性的类

来自分类Dev

如何填充包含另一个ArrayList <String>的ArrayList <ArrayList <String >>

来自分类Dev

在Java中将ArrayList从一个类传递到另一个类

来自分类Dev

用另一个类创建新对象

来自分类Dev

C#用默认构造函数的另一个类的字符串填充List <T>

来自分类Dev

用另一个容器中的迭代器填充一个容器

来自分类Dev

用另一个对象的索引填充一个对象

来自分类Dev

CSS:是否可以用另一个类覆盖一个类?

来自分类Dev

用另一个类的模板参数实例化一个模板类

来自分类Dev

如何调用从另一个类存储在applicationScope一个ArrayList

来自分类Dev

在另一个JComboBox中选择一个项目时如何显示JComboBox

来自分类Dev

JCombobox的动作在另一个动作中执行

来自分类Dev

用另一个类的函数重载一个函数

Related 相关文章

热门标签

归档