简体   繁体   English

从数组列表中获取输出

[英]Getting the output from a arraylist

Im fairly new to java and ive been doing som searching for an answer to my problem but i just cant seem to get the output from the arraylist.我对java相当陌生,我一直在寻找我的问题的答案,但我似乎无法从数组列表中获得输出。 I get a red mark under Ordtildikt String arrayoutput = kontrollObjekt.Ordtildikt;我在 Ordtildikt String arrayoutput = kontrollObjekt.Ordtildikt;下得到一个红色标记String arrayoutput = kontrollObjekt.Ordtildikt; saying it cannot be resolved or is not a field.说它无法解决或不是一个字段。 The program is supposed to get userinput and create an arraylist from the input该程序应该获取用户输入并从输入创建一个数组列表

Interface class接口类

import javax.swing.JOptionPane;

public class Grensesnitt {
    public static void main(String[] args) {
        Grensesnitt Grensesnitt = new Grensesnitt();
        Grensesnitt.meny();     
    }

    Kontroll kontrollObjekt = new Kontroll();
    private final String[] ALTERNATIVER = {"Registrere ord","Skriv dikt","Avslutt"};
    private final int REG = 0;
    private final int SKRIV = 1;

    public void meny() {
        boolean fortsett = true;
        while(fortsett) {
            int valg = JOptionPane.showOptionDialog(
                    null, 
                    "Gjør et valg:", 
                    "Prosjektmeny", 
                    JOptionPane.DEFAULT_OPTION, 
                    JOptionPane.PLAIN_MESSAGE,  
                    null, 
                    ALTERNATIVER, 
                    ALTERNATIVER[0]); 
            switch(valg) {
            case REG: regNy();
                break;
            case SKRIV: regDikt();
                break;
            default: fortsett = false;
            }
        } 
    }

    int i = 0;

    public void regNy() { 
        while(i<=16)
        {
            String Ord = JOptionPane.showInputDialog("Skriv or til diktet: ");
            kontrollObjekt.regNy(Ord);

        //String Diktord = JOptionPane.showInputDialog("Skriv ord til diktet: ");
        //kontrollObjekt.regNy(Diktord);
        i = i + 1;  
        }
    }

    public void regDikt() {
        String arrayoutput = kontrollObjekt.Ordtildikt;
        JOptionPane.showMessageDialog(null, arrayoutput);

            }
        //JOptionPane.showMessageDialog(null, kontrollObjekt.Diktord);
    }

Controll Class控制类

import java.util.ArrayList;

public class Kontroll {
public ArrayList<String> Diktord = new ArrayList<String>();

public void regNy(String Ord) {
    Diktord.add(Ord);
    Diktord.add("\n");

    }
public String Ordtildikt(String Ord) {
    return Ord=Diktord.toString();
}
}

This is a method, not a variable.这是一个方法,而不是一个变量。

kontrollObjekt.Ordtildikt;

You are trying to call this?你想叫这个?

public String Ordtildikt(String Ord) {
    return Ord=Diktord.toString();
}

1) Make it return Diktord.toString(); 1) 让它return Diktord.toString();

2) Get rid of String Ord unless you are going to use that parameter 2) 去掉String Ord除非你打算使用那个参数

3) Actually call the method, eg Put some parenthesis. 3)实际调用该方法,例如放置一些括号。

String arrayoutput = kontrollObjekt.Ordtildikt();

Also, I think this should be the correct regNy method unless you want to falsely report that the list is twice its size.另外,我认为这应该是正确的regNy方法,除非您想错误地报告列表是其大小的两倍。

public void regNy(String Ord) {
    Diktord.add(Ord + "\n");
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM