Swing-jlist

提供:Dev Guides
移動先:案内検索

SWING-JListクラス

前書き

クラス JList は、オブジェクトのリストを表示し、ユーザーが1つ以上のアイテムを選択できるようにするコンポーネントです。 別のモデルであるListModelは、リストのコンテンツを保持します。

クラス宣言

以下は javax.swing.JList クラスの宣言です-

public class JList
   extends JComponent
      implements Scrollable, Accessible

フィールド

以下は javax.swing.JList クラスのフィールドです-

  • static int HORIZONTAL_WRAP -セルが水平方向、次に垂直方向に流れる「新聞スタイル」レイアウトを示します。
  • static int VERTICAL -単一列内のセルの垂直レイアウトを示します。デフォルトのレイアウト。
  • static int VERTICAL_WRAP -セルが垂直方向、次に水平方向に流れる「新聞スタイル」レイアウトを示します。

クラスコンストラクター

Sr.No. Constructor & Description
1

JList()

空の読み取り専用モデルでJListを構築します。

2

JList(ListModel dataModel)

指定されたnull以外のモデルの要素を表示するJListを構築します。

3

JList(Object[] listData)

指定された配列の要素を表示するJListを構築します。

4

JList(Vector<?> listData)

指定されたVectorの要素を表示するJListを構築します。

クラスメソッド

Swing JListクラスのメソッドのリストは次のとおりです。

Sr.No. Method & Description
1

void addListSelectionListener(ListSelectionListener listener)

選択に変更が発生するたびに通知されるように、リストにリスナーを追加します。選択状態の変更をリッスンする好ましい方法。

2

void addSelectionInterval(int anchor, int lead)

選択範囲を、指定した間隔と現在の選択範囲の和集合に設定します。

3

void clearSelection()

選択をクリアします。このメソッドを呼び出した後、isSelectionEmptyはtrueを返します。

4

protected ListSelectionModel createSelectionModel()

DefaultListSelectionModelのインスタンスを返します。リストの選択モデルプロパティを初期化するために構築中に呼び出されます。

5

void ensureIndexIsVisible(int index)

囲まれたビューポート内のリストをスクロールして、指定したセルを完全に表示します。

6

protected void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)

選択モデルに加えられた選択変更のリストに直接追加されたListSelectionListenersに通知します。

7

AccessibleContext getAccessibleContext()

このJListに関連付けられたAccessibleContextを取得します。

8

int getAnchorSelectionIndex()

アンカー選択インデックスを返します。

9

Rectangle getCellBounds(int index0, int index1)

2つのインデックスで指定されたセルの範囲のリストの座標系で境界矩形を返します。

10

ListCellRenderer getCellRenderer()

リスト項目の描画を担当するオブジェクトを返します。

11

boolean getDragEnabled()

自動ドラッグ処理が有効かどうかを返します。

12

JList.DropLocation getDropLocation()

コンポーネントに対するDnD操作中にこのコンポーネントがドロップ位置として視覚的に示す位置を返します。位置が現在表示されていない場合はnullを返します。

13

DropMode getDropMode()

このコンポーネントのドロップモードを返します。

14

int getFirstVisibleIndex()

現在表示されている最小のリストインデックスを返します。

15

int getFixedCellHeight()

fixedCellHeightプロパティの値を返します。

16

int getFixedCellWidth()

fixedCellWidthプロパティの値を返します。

17

int getLastVisibleIndex()

現在表示されている最大のリストインデックスを返します。

18

int getLayoutOrientation()

リストのレイアウト方向プロパティを返します。レイアウトがセルの単一列の場合はVERTICAL、レイアウトがコンテンツが垂直方向と水平方向に流れる「新聞スタイル」の場合はVERTICAL_WRAP、コンテンツがレイアウトの「新聞スタイル」の場合はHORIZONTAL_WRAP水平方向に流れ、次に垂直方向に流れます。

19

int getLeadSelectionIndex()

リード選択インデックスを返します。

20

ListSelectionListener[] getListSelectionListeners()

addListSelectionListenerによってこのJListに追加されたすべてのListSelectionListenersの配列を返します。

21

int getMaxSelectionIndex()

選択された最大のセルインデックスを返します。選択が空の場合は-1を返します。

22

int getMinSelectionIndex()

選択された最小のセルインデックスを返します。選択が空の場合は-1を返します。

23

ListModel getModel()

JListコンポーネントによって表示されるアイテムのリストを保持するデータモデルを返します。

24

int getNextMatch(String prefix, int startIndex, Position.Bias bias)

toString値が指定されたプレフィックスで始まる次のリスト要素を返します。

25

Dimension getPreferredScrollableViewportSize()

visibleRowCount行を表示するために必要なビューポートのサイズを計算します。

26

Object getPrototypeCellValue()

「典型的な」セル値、つまりセルの固定幅と高さの計算に使用される値を返します。

27

int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)

次または前のブロックを表示するためにスクロールする距離を返します。

28

boolean getScrollableTracksViewportHeight()

このJListがJViewportに表示され、ビューポートがリストの優先高さより高い場合、またはレイアウトの向きがVERTICAL_WRAPでvisibleRowCount ⇐ 0の場合、trueを返します。そうでない場合はfalseを返します。

29

boolean getScrollableTracksViewportWidth()

このJListがJViewportに表示され、ビューポートがリストの優先幅より広い場合、またはレイアウトの向きがHORIZONTAL_WRAPで、visibleRowCount ⇐ 0の場合、trueを返します。そうでない場合はfalseを返します。

30

int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)

次または前の行(垂直スクロールの場合)または列(水平スクロールの場合)を表示するためにスクロールする距離を返します。

31

int getSelectedIndex()

選択された最小のセルインデックスを返します。リストで単一のアイテムのみが選択されている場合の選択。

32

int[] getSelectedIndices()

選択したすべてのインデックスの配列を昇順で返します。

33

Object getSelectedValue()

選択された最小のセルインデックスの値を返します。リストで単一のアイテムのみが選択されている場合の選択値。

34

Object[] getSelectedValues()

リスト内のインデックスに基づいて昇順で、選択されたすべての値の配列を返します。

35

Color getSelectionBackground()

選択したアイテムの背景の描画に使用される色を返します。

36

Color getSelectionForeground()

選択された項目の前景を描くために使用される色を返します。

37

int getSelectionMode()

リストの現在の選択モードを返します。

38

ListSelectionModel getSelectionModel()

現在の選択モデルを返します。

39

String getToolTipText(MouseEvent event)

指定されたイベントに使用されるツールチップテキストを返します。

40

ListUI getUI()

このコンポーネントをレンダリングするLook&FeelオブジェクトであるListUIを返します。

41

String getUIClassID()

このコンポーネントのルックアンドフィールを定義するjavax.swing.plaf.ListUIクラスの名前の検索に使用されるUIDefaultsキーである「ListUI」を返します。

42

boolean getValueIsAdjusting()

選択モデルのisAdjustingプロパティの値を返します。

43

int getVisibleRowCount()

visibleRowCountプロパティの値を返します。

44

Point indexToLocation(int index)

リストの座標系で指定されたアイテムの原点を返します。

45

boolean isSelectedIndex(int index)

指定されたインデックスが選択されている場合はtrue、そうでない場合はfalseを返します。

46

boolean isSelectionEmpty()

何も選択されていない場合はtrue、そうでない場合はfalseを返します。

47

int locationToIndex(Point location)

リストの座標系で指定された位置に最も近いセルインデックスを返します。

48

protected String paramString()

このJListの文字列表現を返します。

49

void removeListSelectionListener(ListSelectionListener listener)

リストから選択リスナーを削除します。

50

void removeSelectionInterval(int index0, int index1)

選択範囲を、指定された間隔と現在の選択範囲の差に設定します。

51

void setCellRenderer(ListCellRenderer cellRenderer)

リスト内の各セルの描画に使用されるデリゲートを設定します。

52

void setDragEnabled(boolean b)

自動ドラッグ処理をオンまたはオフにします。

53

void setDropMode(DropMode dropMode)

このコンポーネントのドロップモードを設定します。

54

void setFixedCellHeight(int height)

リスト内のすべてのセルの高さに使用される固定値を設定します。

55

void setFixedCellWidth(int width)

リスト内のすべてのセルの幅に使用される固定値を設定します。

56

void setLayoutOrientation(int layoutOrientation)

リストセルのレイアウト方法を定義します。

57

void setListData(Object[] listData)

オブジェクトの配列から読み取り専用のListModelを構築し、このモデルでsetModelを呼び出します。

58

void setListData(Vector<?> listData)

Vectorから読み取り専用ListModelを構築し、このモデルでsetModelを呼び出します。

59

void setModel(ListModel model)

リストの内容または「値」を表すモデルを設定し、プロパティ変更リスナーに通知してから、リストの選択をクリアします。

60

void setPrototypeCellValue(Object prototypeCellValue)

prototypeCellValueプロパティを設定し、(新しい値がnullでない場合)セルレンダラーから特定の値(およびインデックス0)のセルレンダラーコンポーネントを要求し、そのコンポーネントの優先サイズを使用してfixedCellWidthおよびfixedCellHeightプロパティを計算します。

61

void setSelectedIndex(int index)

単一のセルを選択します。

62

void setSelectedIndices(int[] indices)

指定した配列で指定されたインデックスのセットになるように選択を変更します。

63

void setSelectedValue(Object anObject, boolean shouldScroll)

リストから指定されたオブジェクトを選択します。

64

void setSelectionBackground(Color selectionBackground)

選択したアイテムの背景の描画に使用する色を設定します。セルレンダラーは、選択したセルを塗りつぶすために使用できます。

65

void setSelectionForeground(Color selectionForeground)

選択したアイテムの前景を描画するために使用する色を設定します。セルレンダラーはこれを使用してテキストやグラフィックをレンダリングできます。

66

void setSelectionInterval(int anchor, int lead)

指定された間隔を選択します。

67

void setSelectionMode(int selectionMode)

リストの選択モードを設定します。

68

void setSelectionModel(ListSelectionModel selectionModel)

リストのselectionModelをnull以外のListSelectionModel実装に設定します。

69

void setUI(ListUI ui)

このコンポーネントをレンダリングするLook&FeelオブジェクトであるListUIを設定します。

70

void setValueIsAdjusting(boolean b)

選択モデルのvalueIsAdjustingプロパティを設定します。

71

void setVisibleRowCount(int visibleRowCount)

visibleRowCountプロパティを設定します。これは、レイアウトの向きに応じて異なる意味を持ちます。VERTICALレイアウトの向きの場合、スクロールを必要とせずに表示する行の優先数を設定します。他の向きの場合、セルのラッピングに影響します。

72

void updateUI()

ListUIプロパティを、現在のLook&Feelによって提供される値に設定することによりリセットします。

継承されるメソッド

このクラスは、次のクラスからメソッドを継承します-

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JListの例

たとえば、 D:/> SWING> com> finddevguides> gui> の任意のエディターを使用して、次のJavaプログラムを作成します。

SwingControlDemo.java

package com.finddevguides.gui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SwingControlDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();
      swingControlDemo.showListDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));

      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }
      });
      headerLabel = new JLabel("", JLabel.CENTER);
      statusLabel = new JLabel("",JLabel.CENTER);
      statusLabel.setSize(350,100);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);
   }
   private void showListDemo(){
      headerLabel.setText("Control in action: JList");
      final DefaultListModel fruitsName = new DefaultListModel();

      fruitsName.addElement("Apple");
      fruitsName.addElement("Grapes");
      fruitsName.addElement("Mango");
      fruitsName.addElement("Peer");

      final JList fruitList = new JList(fruitsName);
      fruitList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
      fruitList.setSelectedIndex(0);
      fruitList.setVisibleRowCount(3);

      JScrollPane fruitListScrollPane = new JScrollPane(fruitList);
      final DefaultListModel vegName = new DefaultListModel();

      vegName.addElement("Lady Finger");
      vegName.addElement("Onion");
      vegName.addElement("Potato");
      vegName.addElement("Tomato");

      final JList vegList = new JList(vegName);
      vegList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
      vegList.setSelectedIndex(0);
      vegList.setVisibleRowCount(3);

      JScrollPane vegListScrollPane = new JScrollPane(vegList);
      JButton showButton = new JButton("Show");

      showButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            String data = "";
            if (fruitList.getSelectedIndex() != -1) {
               data = "Fruits Selected: " + fruitList.getSelectedValue();
               statusLabel.setText(data);
            }
            if(vegList.getSelectedIndex() != -1){
               data += " Vegetables selected: ";
               for(Object vegetable:vegList.getSelectedValues()){
                  data += vegetable + " ";
               }
            }
            statusLabel.setText(data);
         }
      });
      controlPanel.add(fruitListScrollPane);
      controlPanel.add(vegListScrollPane);
      controlPanel.add(showButton);

      mainFrame.setVisible(true);
   }
}

コマンドプロンプトを使用してプログラムをコンパイルします。 D:/> SWING に移動して、次のコマンドを入力します。

D:\SWING>javac com\finddevguides\gui\SwingControlDemo.java

エラーが発生しない場合、コンパイルが成功したことを意味します。 次のコマンドを使用してプログラムを実行します。

D:\SWING>java com.finddevguides.gui.SwingControlDemo

次の出力を確認します。

Swing JList