こんにちは。
今、LinkedListでつなげたコンテンツの集合を
JListのように表示をしたいと思っています。
もちろん表示しながらもLinkedListの中のそれぞれのコンテンツを変更、削除、挿入などをしてもJListに反映できるようにしたいと思っています。
あるサンプルコードでは
//JListを置いたパネル
class ListPanel extends JPanel implements ListSelectionListener {
JList list;
DefaultListModel listModel;
int select = -1; //選択された項目インデックス,起動時は-1
String entry; //選択された項目内容
JLabel fileLabel; //ファイル名を表示するラベル
ListPanel(){
setLayout(new BorderLayout());
listModel = new DefaultListModel();
list = new JList(listModel);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.addListSelectionListener(this);
fileLabel = new JLabel(filename);
add(fileLabel, BorderLayout.NORTH); //ファイル名を表示するラベルをJPanelに置く
add(new JScrollPane(list), BorderLayout.CENTER); //listを入れたJScrollPaneをJPanelに置く
}
void dataRead() throws IOException{ //ファイルを読む
listModel.removeAllElements();
BufferedReader din = new BufferedReader(new FileReader(filename));
while ((entry=din.readLine()) != null) { //1行読む
listModel.addElement(entry); //リスト項目に追加
}
din.close();
}
のように
JList list;
DefaultListModel listModel;
を使ってやっていますが、LinkedListでも同様にできるのでしょうか?
たとえば・・
Jist list
list = LinkedList();
といった感じですか?
No.3ベストアンサー
- 回答日時:
>というエラーが出たのですが、もう少し詳しく教えていただけないですか?
インターフェースをimplementsした場合は、インターフェースに定義されている全てのメソッドを実装しなければなりません。
javax.swing.ListModelは
addListDateListener(ListDataListener)
getElementAt(int)
getSize()
removeListDataListener(ListDataListener)
の4つのメソッドが定義されているので、これらを全て実装してください。
No.2
- 回答日時:
JListで表示するデータとLinkedListで保持するデータを同じにしたいならば、LinkedListにjavax.swing.ListModelインターフェースを実装させたクラスを作れば良いかと思います。
概略的には以下のような感じです。
class Foo extends java.util.LinkedList implements javax.swing.ListModel{中略}
java.util.List data = new Foo();
JList list = new JList((ListModel)data);
この回答への補足
JListLinked は abstract でなく、javax.swing.ListModel 内の abstract メソッド removeListDataListener(javax.swing.event.ListDataListener) をオーバーライドしません。
class JListLinked extends java.util.LinkedList implements javax.swing.ListModel{
というエラーが出たのですが、
もう少し詳しく教えていただけないですか?
No.1
- 回答日時:
JList(javax.swing.JList)クラスとList(java.util.List)インターフェースはまったく関係ない型です。
従って、Listの実装クラスであるLinkedList(java.util.LinkedList)クラスもJListクラスとは関係なく、
Jist list
list = LinkedList();
は出来ません。
LinkedListの内容を一つずつJListに登録・追加・削除する必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- C言語・C++・C# C#のSystem.Windows.Media.Colorに関する質問です。 3 2022/05/18 11:51
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- VPN 何これ 1 2022/04/19 01:32
- Visual Basic(VBA) リストボックスに表示されたファイルを削除したい 1 2023/04/19 12:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(vba)他のアプリケーションの右...
-
ゲッターを使わないで変数にア...
-
Javaで下線
-
「ラッパークラス」の存在意義...
-
メソッドの引数にクラス名を渡す
-
c++でのヘッダーファイルの循環...
-
JTextFieldの入力制限
-
VBがオブジェクト指向言語でな...
-
Javaのインスタンス化の構文の...
-
ASP.NETでの共通コードの書き方...
-
interface,extend,implementの...
-
サーバー上のフォルダ情報の取得
-
「継承されたメソッドの可視性...
-
単体テストのテストケースにて...
-
【C#】クラスのコンストラクタ...
-
JTableのCellにJLabelを埋め込...
-
TableViewでタップした時にキー...
-
ファイルパスが取得出来ない(P...
-
抽象クラスをJUNITでテストする...
-
オブジェクト指向の特徴
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
抽象クラスをJUNITでテストする...
-
「ラッパークラス」の存在意義...
-
(vba)他のアプリケーションの右...
-
ASP.NETでの共通コードの書き方...
-
VB DLLプロジェクトについて
-
C#からDLLを呼びたいのですが・...
-
c++でのヘッダーファイルの循環...
-
委譲って何ですか?
-
「継承されたメソッドの可視性...
-
【C#】クラスのコンストラクタ...
-
Javaでのジェネリクス型パラメ...
-
C# 「データが失なわれる可能性...
-
Excel vbaのプログラムでガンマ...
-
ファイルパスが取得出来ない(P...
-
オーバーライドとラッパーの違い
-
compareToにおける「自然順序付...
-
メソッドの引数にクラス名を渡す
-
vb.net 自作プロパティの削除に...
-
VBがオブジェクト指向言語でな...
おすすめ情報