淺談Swing構(gòu)造JList
構(gòu)造JList類代表的Swing列表顯示一個(gè)可選取對象列表,它支持三種選取模式:單選取、單間隔選取和多間隔選取。
JList類把維護(hù)和繪制列表的工作委托給一個(gè)對象來完成。一個(gè)列表的模型維護(hù)一個(gè)對象列表,Swing列表單元繪制器將這些對象繪制在列表單元中。
缺省情況下,Swing列表單元繪制器是DefaultListCellRenderrer的實(shí)例,圖標(biāo)和字符串按原樣顯示,而所有其他類型對象的繪制方式是:通過顯示從這些對象的toString返回的字符串來繪制這些對象。
構(gòu)造JList方法
◆JList()構(gòu)造一個(gè)使用空模型的 JList。
◆JList(ListModel dataModel),使其使用指定的非 null 模型顯示元素。
◆JList(Object[] listData),使其顯示指定數(shù)組中的元素。
◆JList(Vector> listData),使其顯示指定 Vector 中的元素。
常用方法
◆addListSelectionListener(ListSelectionListener listener)為每次選擇發(fā)生更改時(shí)要通知的列表添加偵聽器。
◆addSelectionInterval(int anchor, int lead)將選擇設(shè)置為指定間隔與當(dāng)前選擇的并集。
◆createSelectionModel()返回 DefaultListSelectionModel 實(shí)例。
◆getCellRenderer()返回呈現(xiàn)列表項(xiàng)的對象。
◆getModel()返回保存由 JList 組件顯示的項(xiàng)列表的數(shù)據(jù)模型。
◆getSelectedIndex()返回所選的第一個(gè)索引;如果沒有選擇項(xiàng),則返回 -1。
◆getSelectedValue()返回所選的第一個(gè)值,如果選擇為空,則返回 null。
◆getSelectionModel()返回當(dāng)前選擇模型的值。
◆isSelectionEmpty()如果什么也沒有選擇,則返回 true。
◆setListData(Object[] listData)根據(jù)一個(gè) object 數(shù)組構(gòu)造 ListModel,然后對其應(yīng)用 setModel。
◆setListData(Vector> listData)根據(jù) Vector 構(gòu)造 ListModel,然后對其應(yīng)用 setModel。
◆setModel(ListModel model)設(shè)置表示列表內(nèi)容或“值”的模型,并在通知 PropertyChangeListener 之后清除列表選擇。
◆setSelectedIndex(int index)選擇單個(gè)單元。
◆setSelectionMode(int selectionMode)確定允許單項(xiàng)選擇還是多項(xiàng)選擇。
◆setSelectionModel(ListSelectionModel selectionModel)將列表的 selectionModel 設(shè)置為非 null 的 ListSelectionModel 實(shí)現(xiàn)。
例:采用數(shù)組對象構(gòu)造JList并設(shè)置JList背景顏色和邊框
- importjava.awt.BorderLayout;
- importjava.awt.Color;
- importjava.awt.Container;
- importjavax.swing.BorderFactory;
- importjavax.swing.JFrame;
- importjavax.swing.JList;
- importjavax.swing.JPanel;
- importjavax.swing.border.Border;
- publicclassJListBackgroundextendsJPanel{
- privatestaticfinalColorlightBlue=newColor(153,204,255);
- publicJListBackground(){
- super();
- setBackground(lightBlue);
- }
- publicstaticvoidaddComponentsToPane(Containerpane){
- String[]bruteForceCode={"intcount=0",
- "intm=mPattern.length();",
- "intn=mSource.length();",
- "outer:",
- "++count;",
- "}",
- "returncount;",
- "}"
- };
- JListlist=newJList(bruteForceCode);
- Borderetch=BorderFactory.createEtchedBorder();
- list.setBorder(BorderFactory.createTitledBorder(etch,"BruteForceCode"));
- JPanellistPanel=newJPanel();
- listPanel.add(list);
- listPanel.setBackground(lightBlue);
- list.setBackground(lightBlue);
- pane.add(listPanel,BorderLayout.CENTER);
- pane.setBackground(lightBlue);
- }
- publicstaticvoidmain(String[]args){
- JFrameframe=newJFrame("BruteForceAlgorithm");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- addComponentsToPane(frame.getContentPane());
- frame.pack();
- frame.setSize(800,600);
- frame.setVisible(true);
- }
- }
【編輯推薦】