2013-02-24 2 views
0

Итак, у меня есть класс GUI и класс, который будет содержать все остальное. У меня есть ArrayList в другом классе, и я хотел бы, чтобы заполнить содержание JList в GUI к ArrayListJava ставит arraylist из другого класса в JList

у меня это до сих пор:

filmList = new JList(films.toArray()); 
getContentPane().add(filmList); 
filmList.setBounds(27, 21, 638, 165); 

Он не любит только фильмы. toArray(), потому что это в другом классе. Что мне не хватает?

Это мой класс FilmSystem на данный момент.

import java.util.ArrayList; 

общественного класса FilmSystem {

public FilmSystem() { 

    ArrayList<String> films = new ArrayList<String>(); 
    films.add("A"); 
+0

Смотрите это редактирование: http://stackoverflow.com/posts/15056563/revisions То есть ненужный шум. – Doorknob

+0

О себе: Вам нужно показать больше кода для нас, чтобы помочь. – Doorknob

+0

Что такое класс, который имеет ArrayList? – Addict

ответ

1

От вопроса его не ясно, но если «фильмы» это имя ArrayList в другом классе, то вам нужно создать объект этого класса, а затем вызвать геттер на нем, чтобы получить фильмы, а затем использовать toArray на нем. Как ниже:

FilmSystem filmObj=new FilmSystem(); 
filmList = new JList(filmObj.getterMethod.toArray(new String[0])); 

где getterMethod должен быть именем метода геттера, который вы определили в классе. Если вы не определили метод getter, вы можете напрямую вызвать Arraylist на объект.

Если газопоглотитель не определен, а затем использовать следующее:

FilmSystem filmObj=new FilmSystem(); 
filmList = new JList(filmObj.films.toArray(new String[0])); 
+0

Извините, перечитывая свой вопрос, я понимаю, что это немного расплывчато. Да, мой аррайалист называется фильмами в классе FilmSystem. Я создал объект FilmSystem в классе FilmGUI. Как я могу назвать метод геттера? Я предполагаю, что это будет не так просто, как films.get(); ? – user2092012

+0

Можете ли вы показать мне свой класс FilmSystem? – Addict

+0

Да, конечно; Я отредактировал мой вопрос. – user2092012

1

Массив имеет явный тип, независимо от типов его элементов. При построении JList<String> вы должны передать массив, тип которого - String [], а не Object []. Метод нулевого аргумента toArray() всегда возвращает массив, тип которого является Object [], хотя элементы массива могут быть все определенного класса, такого как String.

Чтобы получить массив определенного типа, передать массив требуемого типа к методу toArray:

filmList = new JList<String>(films.toArray(new String[0]));