
こんにちは。
今、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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaでのジェネリクス型パラメ...
-
setTextについて
-
ファイルパスが取得出来ない(P...
-
ASP.NETでの共通コードの書き方...
-
Commons-Discovery.jarとは?
-
「継承されたメソッドの可視性...
-
Strutsのバージョンアップによ...
-
「タイプ初期化子が例外をスロ...
-
UMLのクラス図はmain()も含むん...
-
変数名の付け方
-
エクセルVBAで、条件に一致する...
-
C# インスタンスの破棄
-
VB.NETでフォーム上にExcelのよ...
-
java eclipse 型に解決できません
-
private static という変数の修飾
-
無名パッケージからのインポート
-
僕の出身中学校は200人同級生が...
-
そんなにお金がなくても年に1度...
-
スーパークラスからサブクラス...
-
【JAVA】与えられた金額を貨幣...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
(vba)他のアプリケーションの右...
-
「継承されたメソッドの可視性...
-
C# 「データが失なわれる可能性...
-
JTextFieldの入力制限
-
ASP.NETでの共通コードの書き方...
-
オーバーライドとラッパーの違い
-
VB DLLプロジェクトについて
-
抽象クラスをJUNITでテストする...
-
ゲッターを使わないで変数にア...
-
【C#】クラスのコンストラクタ...
-
メソッドの引数にクラス名を渡す
-
C#からDLLを呼びたいのですが・...
-
c++でのヘッダーファイルの循環...
-
Commons-Discovery.jarとは?
-
デバックログの出し方
-
Javaのインスタンス化の構文の...
-
委譲って何ですか?
-
「ラッパークラス」の存在意義...
-
ファイルパスが取得出来ない(P...
おすすめ情報