0

だから私はGUIクラスと他のすべてを保持するクラスを持っています。他のクラスに ArrayList があり、GUI の Jlist の内容を arraylist に入力したいと考えています。

私はこれまでのところこれを持っています:

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

それは別のクラスにあるため、films.toArray() だけは好きではありません。私は何が欠けていますか?

これは現時点で私の FilmSystem クラスです。

 import java.util.ArrayList;

パブリック クラス フィルム システム {

public FilmSystem() {

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

2 に答える 2

1

質問からは明確ではありませんが、「films」が別のクラスのArrayListの名前である場合は、そのクラスのオブジェクトを作成し、そのクラスでgetterを呼び出してフィルムを取得し、toArrayを使用する必要があります。以下のように:

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

ここで、getterMethodは、クラスで定義したgetterメソッドの名前である必要があります。getterメソッドを定義していない場合は、オブジェクトに対してArraylistを直接呼び出すことができます。

getterが定義されていない場合は、次を使用します。

 FilmSystem filmObj=new FilmSystem();
 filmList = new JList(filmObj.films.toArray(new String[0]));
于 2013-02-24T21:06:27.840 に答える
1

配列には、要素の型に関係なく、明示的な型があります。を作成するときJList<String>は、Object[]ではなくString[]型の配列を渡す必要があります。ゼロ引数toArray()メソッドは、配列の要素がすべてStringなどの特定のクラスである場合でも、常にObject[]型の配列を返します。

特定のタイプの配列を取得するには、目的のタイプの配列をtoArrayメソッドに渡します。

filmList = new JList<String>(films.toArray(new String[0]));
于 2013-02-24T21:33:10.460 に答える