天天看點

[java桌面應用開發]清單————(2020.4.28學習筆記)

目錄

第一節 清單

第二節 執行個體示範

第一節 清單

清單(JList)是可供使用者進行選擇的一系列可選項。常用的構造方法如下。

  •JList( ):構造一個空清單。

  •JList(Object[] listData):構造一個清單,清單的可選項由對象數組listData指定。

  •JList(Vector<?>listData):構造一個清單,使其顯示指定Vector中的元素。

  例如,下面的語句根據String 數組構造一個包含4個可選項的清單。

  String[] data={”one”,“two”,“three”,"four“};

  JListdataList=new JList(data);

  當使用者在清單上進行選擇時,将引發ListSelectionEvent事件。在JList中提供了addListSelectionListener(ListSelectionListener listener)方法,用于注冊對應的事件偵聽程式。在ListSelectionListener接口中,隻包含一個方法:

  public void valueChanged(ListSelectionEvent e);

  當清單的目前選項發生變化時,将會調用該方法。在JList類中定義了相關的方法,常用的有以下幾種。

  public intgetSelectedIndex( ):傳回所選項第一次出現的索引;如果沒有所選項,則傳回-1。

  •public Object getSelectedValue( ):傳回所選的第一個值,如果選擇為空,則傳回null。

  •public void setVisibleRowCount(intvisibleRowCount):設定不使用滾動條可以在清單中顯示的首選行數。

第二節 執行個體示範

執行個體代碼如下

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class Subject {
	JFrame frame=new JFrame("JList Demo");
	JList list;
	DefaultListModel listModel;
	JPanel panel;
	JTextField tf;
	JButton button;
	
   public static void main(String args[])
   {
	   Subject s=new Subject();
	   s.go();
   }
   public void go()
   {
	   listModel=new DefaultListModel();
	   listModel.addElement("one");
	   listModel.addElement("two");
	   listModel.addElement("three");
	   listModel.addElement("four");
	   list=new JList(listModel);
	   JScrollPane jsp=new JScrollPane(list,
			   JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
			   JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
	   Container cp=frame.getContentPane();
	   cp.add(jsp);
	   tf=new JTextField(15);
	   button=new JButton("add new item");
	   button.addActionListener(new ActionListener(){
		   public void actionPerformed(ActionEvent e)
		   {
			   listModel.addElement(tf.getText());
			   
		   }
	   });
	   panel=new JPanel();
	   panel.add(tf);
	   panel.add(button);
	   cp.add(panel,BorderLayout.SOUTH);
	   frame.pack();
	   frame.setVisible(true);
	   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	   
	   
	   
   }
}

           

最後實作的效果如下

[java桌面應用開發]清單————(2020.4.28學習筆記)