Java Swing JList

2018-01-09 19:23 更新

Java Swing教程 - Java Swing JList


JList< T> 是一個Swing組件,顯示一個選項列表,讓我們選擇一個或多個選項。

類型參數(shù)T是它包含的元素的類型。

JList可以在屏幕上顯示多個選項。

下面的代碼使用數(shù)組創(chuàng)建一個JList

String[]  items = new String[]{"Spring", "Summer",  "Fall",  "Winter"}; 
JList<String> list = new JList<>(items);

下面的代碼使用Vector創(chuàng)建一個JList

Vector<String> items2 = new Vector<>(4); 
items2.add("Spring"); 
items2.add("Summer");
items2.add("Fall");
items2.add("Winter");
JList<String> list2 = new JList<>(items2);

要啟用在JList上滾動,將它添加到JScrollPane,并將JScrollPane添加到容器。

myContainer.add(new JScrollPane(myJList));

我們可以通過三種方式配置JList的方向:

  • Vertical - the default, all items in a JList are displayed using one column and multiple rows.
  • Horizontal Wrapping - all items are arranged in a row and multiple columns. If not all items can fit into a row, new rows are added to display them as necessary.
  • Vertical Wrapping - all items are arranged in a column and multiple rows. If all items cannot fit into a column, new columns are added to display them as necessary.

我們可以使用setVisibleRowCount(int visibleRows)方法設(shè)置我們希望在列表中看到的可見行數(shù),而不需要滾動。

我們可以使用setLayoutOrientation(int orientation)方法設(shè)置其布局方向,其中方向值可以是JList類中定義的三個常量之一:

  • JList.VERTICAL
  • JList.HORIZONTAL_WRAP
  • JList.VERTICAL_WRAP

我們可以使用其setSelectionMode(int mode)方法配置JList的選擇模式。

mode值可以是在ListSelectionModel接口中定義為常量的以下三個值之一。

  • SINGLE_SELECTION
  • SINGLE_INTERVAL_SELECTION
  • MUTIPLE_INTERVAL_SELECTION

在單一選擇模式下,我們一次只能選擇一個項目。

在單個間隔選擇模式下,我們可以選擇多個項目。 但是,所選項目必須始終為連續(xù)的。我們可以使用Ctrl鍵或Shift鍵和鼠標(biāo)組合進行連續(xù)選擇。

在多重間隔部分,我們可以選擇多個項目沒有任何限制。

為了處理列表選擇事件,我們可以向JList添加列表選擇監(jiān)聽器,當(dāng)選擇被改變時,它將通知我們。

更改選擇時,將調(diào)用ListSelectionListener的valueChanged()方法。 該方法也可以在一次選擇改變的中間被多次調(diào)用。

我們使用getValueIsAdjusting()方法ListSelectionEvent對象,以確保選擇更改已完成。

myJList.addListSelectionListener((ListSelectionEvent e) ->  {
    // Make sure selection change  is final 
    if (!e.getValueIsAdjusting())  {
        
    }
});

要知道JList中的選擇數(shù),請調(diào)用其模型的getSize()方法。

int size = myJList.getModel().getSize();

下表列出了JList類的常用方法

ID 方法/說明
1 void clearSelection()清除在JList中進行的選擇。
2 void ensureIndexIsVisible(int index)確保指定索引處的項目可見。
3 int get First VisibleIndex()返回最小的可見索引。 如果沒有可見項目或列表為空,則返回-1。
4 int get First VisibleIndex()返回最小的可見索引。 如果沒有可見項目或列表為空,則返回-1。...
5 int getsMaxSelectionIndex()返回最大的選定索引。 如果沒有選擇,則返回-1。
6 int getsMaxSelectionIndex()返回最大的選定索引。 如果沒有選擇,則返回-1。...
7 int getSelectedIndex()返回最小的選定索引。 如果JList選擇模式是單選,它返回所選的索引。 如果沒有,則返回-1選擇。
8 int getSelectedIndex()返回最小的選定索引。 如果JList選擇模式是單選,它返回所選的索引。 如果沒有,則返回-1選擇。...
9 E getSelectedValue()返回第一個選定的項目。 如果JList具有單選選擇模式,則它是所選項的值。 如果JList中沒有選擇,則返回null。
10 E getSelectedValue()返回第一個選定的項目。 如果JList具有單選選擇模式,則它是所選項的值。 如果JList中沒有選擇,則返回null。...
11 boolean isSelectedIndex(int index)如果選擇了指定的索引,則返回true。 否則,它返回false。
12 boolean isSelectedIndex(int index)如果選擇了指定的索引,則返回true。 否則,它返回false。...
13 void setListData(E [] listData)void setListData(Vector listData)在JList中設(shè)置新的選擇列表。
14 void setListData(E [] listData)void setListData(Vector listData)在JList中設(shè)置新的選擇列表。...
15 void setSelectedIndices(int [] indices)在指定數(shù)組中的索引處選擇項目
16 void setSelectedValue(Object item,boolean shouldScroll)如果指定的項目存在于列表中,則選擇該項目。 如果第二個參數(shù)為true,滾動到該項目以使其可見。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號