【问题标题】:Two Dimensional ArrayList Java (Gui)二维 ArrayList Java (GUI)
【发布时间】:2016-03-02 02:41:55
【问题描述】:

我正在尝试创建包含各种乐器(例如吉他、键盘)细节的程序。我希望它有关于 Arraylist 中每个项目的信息。我希望每个仪器都有一个制造商和一个“描述”。我对二维数组并不陌生,但是我不知道如何在数组列表中使用它。 我已经尝试过了。 (Ps 我需要能够访问所有这些东西才能放入 gui。我希望这是有道理的。)

public class Main {

    public static Login form = new Login();
    public static ArrayList<ArrayList<String>> instt = new ArrayList<ArrayList<String>>();
    public static ArrayList<String> row = new ArrayList<String>();

    public static void main(String[] args) {
        row.add("Chelo");
        row.add("Drums");
        row.add("Flute");
        row.add("Guitar");
        row.add("Harp");
        row.add("Piano");
        row.add("Recorder");
        row.add("Trombone");
        row.add("Trumpet");
        row.add("Xylophone");
        instt.add(row);

        form.setVisible(true);
    }
}

有什么建议吗?谢谢。

【问题讨论】:

    标签: java arrays user-interface multidimensional-array arraylist


    【解决方案1】:

    最好的方法是创建一个包含所有信息的 Instrument-Class。

    public static ArrayList<Instrument> row = new ArrayList<Instrument>();
    
    public static void main(String[] args){
        row.add(new Instrument("Guitar","Stackoverflow-Instruments","Best guitar!!"));
        row.add(new Instrument("Piano","Stackoverflow-Instruments","Best piano!!"));
    }
    
    public static class Instrument{
        private String name;
        private String manufacturer;
        private String description;
    
        public String getName() {
            return name;
        }
    
        public String getManufacturer() {
            return manufacturer;
        }
    
        public String getDescription() {
            return description;
        }
    
        public Instrument(String name, String manufacturer, String description) {
            this.name = name;
            this.manufacturer = manufacturer;
            this.description = description;
        }
    }
    

    【讨论】:

    • 谢谢你,但我对你在这里所做的事情感到很困惑。它还出现了一个错误(特别是 row.add(new Instrument("Guitar","Stackoverflow-Instruments","Best guitar!!")); 位)它说不是静态变量,这不能从静态上下文。
    • 我已经更新了帖子。出现此错误是因为 Instrument 是内部类并且未声明为静态的。您可以通过将 Instrument 定义为外部类(这实际上是更好的方法)来解决此问题。
    • 谢谢,这真的很有帮助。最后一个问题。我如何单独访问这些信息。在我的 GUI 中,我有一个用于描述和制造等的单独框。我如何对其进行编码以便获得我在其中写的内容(例如“Best Guitar!!”)并且只将其放在描述中。谢谢。
    • 通过使用定义的 getter。例如'row.get(0).getDescription();'
    猜你喜欢
    • 1970-01-01
    • 2017-03-11
    • 2020-10-04
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2015-08-13
    • 2017-01-18
    • 2012-11-18
    相关资源
    最近更新 更多