2016-12-03 12 views
0

私はJavaで単純なアドレス帳を作成しようとしています。人の名前を含むJListを持っています。人を作成した後、JListに人物の名前が表示されますが、 。追加した後のJList Java Refeshing

は、ここで私のAddressBookGUIコードです:

public class AddressBookGUI extends JFrame { 
    // GUI components 
    private DefaultListModel<String> namaPeople = new DefaultListModel<>(); 
    private JList<String> nameList = new JList<>(namaPeople); 

    public AddressBookGUI() { 
     JScrollPane listPane = new JScrollPane(nameList); 
     getContentPane().add(listPane, BorderLayout.NORTH); 
    } 

    public static void addPerson(Person info) { 
     // insert new Person's Name to JList 
     // ERROR's Here 
     DefaultListModel<String> namaPeople = new DefaultListModel<>(); 
     namaPeople.addElement(info.getName()); 
    } 
} 

答えて

0

あなたは、既存のリストを上書きPersonしていない追加したい場合は、あなたが存在するそのいずれかを使用する必要がありながらstatic方法で新しいDefaultListModelインスタンスを作成してみてください。
namaPeopleインスタンスフィールドを使用して、新しいPersonを追加するだけです。
そして、ここにもstatic修飾子削除:それはインスタンスフィールドにアクセスする方法を防ぐため

public static void addPerson(Person info) 

を。

public class AddressBookGUI extends JFrame { 
    // GUI components 
    private DefaultListModel<String> namaPeople = new DefaultListModel<>(); 
    private JList<String> nameList = new JList<>(namaPeople); 

    public AddressBookGUI() { 
     JScrollPane listPane = new JScrollPane(nameList); 
     getContentPane().add(listPane, BorderLayout.NORTH); 
} 

public void addPerson(Person info) { 
    // insert new Person's Name to JList 
    namaPeople.addElement(info.getName()); 
} 
+0

申し訳ありませんが、私のコードを更新しました。チェックしてください。私はそれを使用しますが、 "静的な参照を作ることはできません"というエラーを表示します。 addPerson(Person info)はAddressBookGUI内にあります –

+0

問題はありません:)答えの問題を説明します。問題はあなたのメソッドの修飾子、 'static'です。 – davidxxx

+0

このようにエラーが表示されます。 "AddressBookGUIタイプから非静的メソッドaddPerson(Person)への静的参照を作成できません"。アドレスブックを使用しているときに AddressBookGUI.addPerson(新しいPerson( "John doe")) –

関連する問題