2016-07-25 7 views
0

私はクライアント - >サーバーチャットルームシステムを作成しました。現在、JTextField内のボタンをクリックすると現在表示されている現在接続されているユーザーのリストがあります。アレイ。しかし、GUIに別のコンポーネントを追加しました。これはJListです。私はupdateUserListというメソッドを作成して、JListを接続されているユーザーに更新しようとしています。私はString型のDefaultListModelを使用しようとしましたが、これはJListに何も表示されず、なぜ私は確信がありません。バインディング文字列ArrayListをJListにバインドする

public void updateUserList() 
{ 
    model = new DefaultListModel<String>(); 
    for(String usernames : users) 
     model.addElement(usernames); 
    jl_users = new JList<String>(model); 
} 

ので、私はポストにそれらを含めていない、そのモデルは、ユーザ名とjl_usersがグローバルに定義されていますのでご注意ください。

以下は、私が作成したupdateUserList方法です。

+0

十分なコードがありませんようにそれを使用しています。初心者の方には、** update **コードがまったく新しいJListオブジェクトを作成するのは不思議なことです。むしろあなたのアプリケーションに**固定** JListが含まれていると思います。そのJListのモデルのみを更新するということです。それはモデルアプローチの全ポイントです。何かを更新するたびにUIコンポーネントを捨てないでください。言い換えれば、ヘルプセンターに目を通し、「本当に助けになるほどの情報を提供しているわけではありません。」 – GhostCat

+0

私のコードには新しいJListオブジェクトが含まれています。 – DaveDavidson

+0

新しいリストを作成することでリストに新しいアイテムを追加するのではなく、最初にリストを作成した後、リストの要素を追加/削除します。おそらくこのようなことに関するチュートリアルを読んでみたいですか? https://docs.oracle.com/javase/tutorial/uiswing/components/list.html – GhostCat

答えて

0

なぜあなたはDefaultListModelを使用していますか?あなたは、単にリストをしたい場合は はちょうどこの

public void updateUserList() 
{ 
    jl_users = new JList<String>(users.toArray(new String[users.size()])); 
} 

またはまっすぐ進む

jl_users = new JList(users.toArray()); 
関連する問題