JList
類是顯示物件列表並允許使用者選擇一個或多個項的元件。模型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
- 表示「報紙樣式」布局,其中單元格垂直然後水平流動。編號 | 建構函式 | 描述 |
---|---|---|
1 | JList() |
使用空的唯讀模型構造JList 。 |
2 | JList(ListModel dataModel) |
構造一個JList ,顯示指定的非null 模型中的元素。 |
3 | JList(Object[] listData) |
構造一個顯示指定陣列中元素的JList 。 |
4 | JList(Vector<?> listData) |
構造一個顯示指定Vector 中元素的JList 。 |
下面是Swing JList類中的方法列表。
使用編輯器建立以下Java程式:JListExample.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JListExample {
private JFrame mainFrame;
private JLabel headerLabel;
private JLabel statusLabel;
private JPanel controlPanel;
public JListExample(){
prepareGUI();
}
public static void main(String[] args){
JListExample swingControlDemo = new JListExample();
swingControlDemo.showListDemo();
}
private void prepareGUI(){
mainFrame = new JFrame("Java Swing JList 範例");
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("Java");
fruitsName.addElement("Go");
fruitsName.addElement("MySQL");
fruitsName.addElement("Python");
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);
}
}
執行上面範例程式碼,得到以下結果: