Javaプログラミング/Javaプログラミング関連情報

JListの基本をマスターしよう!(4ページ目)

今回は、一覧リストを表示するためのJListを使ってみましょう。

執筆者:掌田 津耶乃

モデルクラスの基本操作


JTextFieldにテキストを入力してEnterすると、その項目がJListに追加される。


ここでは、JTextFieldにテキストを書いてEnterキーを押すと、それがJListに追加されます。JTextFieldに組み込んであるActionListenerを利用しているのですね。ここでは、actionPerformedで組み込みの処理をしています。

まずは、モデルを作成し、組み込んでいる部分を見てみましょう。new DefaultListModelでモデルクラスのインスタンスを作成した後、以下のようにしてモデルに表示項目を追加しています。

model.addElement("Windows");
model.addElement("Linux");
model.addElement("Mac OS X");


この「addElement」は、モデルの末尾に項目を追加する働きをするメソッドです。この他、指定した場所に追加をする「insertElement」や、指定した項目を削除する「removeElement」といったメソッドも用意されています。これらの使い方を覚えれば、モデル内の項目を自由に操作できるようになるでしょう。

作成したモデルは、new JListする際に引数として渡すと、このモデルを使ってJListに項目を表示するようになります。後から設定したい場合には、JListの「setModel」というメソッドを利用することで、特定のモデルをJListに設定することができます。

さて、実際に項目を操作しているactionPerformedを見ましょう。こちらでは、JTextFieldからgetTextしたStringを「model.addElement(s);」という形で追加しています。モデルのインスタンスをフィールドとして保管しておけば、このようにいつでも項目を操作することができるというわけです。


JListの項目はStringと決まってはいない!


JListとListModelを利用する場合、一つ頭に入れておきたいのは、「保管される項目の情報」についてです。ここまで、何の説明もなくStringの値を使ってきましたが、実は項目として扱えるのはStringと決まっているわけではありません。

各種の項目を扱うメソッド類が、すべて項目データを「Object」インスタンスとして扱っていたことに気づいたでしょうか。そう、項目のデータとして利用できるのは、Objectおよびそれを継承したクラスなのです。すなわち、どんなクラスのインスタンスでも、項目として利用することができるのです。

ただし、そのままインスタンスを組み込んだとしても、それだけではいろいろと問題が生じます。例えば、表示はどうなるのか、項目のデータを取り出して利用する場合はどうするか、といった問題です。こうした点を踏まえて、全体を設計する必要があります。


  • 前のページへ
  • 1
  • 3
  • 4
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます