2016-10-05 4 views
-2

Im довольно новичок в java и ive делал som, ища ответ на мою проблему, но я просто не могу получить результат от arraylist. Я получаю красную метку под Ordtildikt String arrayoutput = kontrollObjekt.Ordtildikt;, говоря, что она не может быть разрешена или не является полем. Программа должна получить UserInput и создать ArrayList от входаПолучение выходных данных от arraylist

интерфейс класса

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

проверочные Класс

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(); 
} 
} 
+0

ah его предполагается сказать 'String arrayoutput = kontrollObjekt.Ordtildikt;' вместо этого. отредактировал сейчас – ArmsShaman

ответ

0

Это метод, а не переменная.

kontrollObjekt.Ordtildikt; 

Вы пытаетесь назвать это?

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

1) Сделать return Diktord.toString();

2) Избавиться от String Ord, если вы не собираетесь использовать тот параметр

3) На самом деле вызвать метод, например, Поместите некоторые скобки.

String arrayoutput = kontrollObjekt.Ordtildikt(); 

Кроме того, я думаю, что это должно быть правильным regNy метод, если вы не хотите, чтобы ложно сообщить, что список в два раза его размер.

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

aah я понимаю. Большое вам спасибо за помощь. – ArmsShaman

+0

Вы можете выразить свою благодарность, приняв ответ, используя галочку рядом с сообщением –

Смежные вопросы