Java的GUI編程之列表和組合框的設計應用。本站提示廣大學習愛好者:(Java的GUI編程之列表和組合框的設計應用)文章只能為提供參考,不一定能成為您想要的結果。以下是Java的GUI編程之列表和組合框的設計應用正文
列表和組合框是又一類供用戶選擇的界面組件,用於在一組選擇項目選擇,組合框還可以輸出新的選擇。
列表
列表(JList)在界面中表示為列表框,是JList類或它的子類的對象。法式可以在列表框中參加多個文本選擇項條目。列表事宜的事宜源有兩種:
一是鼠標雙擊某個選項:雙擊選項是舉措事宜,與該事宜相干的接口是ActionListener,注冊監督器的辦法是addActionListener(),接口辦法是actionPerformed(ActionEvent e)。
二是鼠標單擊某個選項:單擊選項是選項事宜,與選項事宜相干的接口是ListSelectionListener,注冊監督器的辦法是addListSelectionListener,接口辦法是valueChanged(ListSelectionEvent e)。
JList 類的經常使用結構辦法:
JList類的經常使用辦法:
列表可以添加轉動條,列表添加轉動條的辦法是先創立列表,然後再創立一個JScrollPane轉動面板對象,在創立轉動面板對象時指定列表。以下代碼表示為列表list2添加轉動條:
JScrollPane jsp = new JScrollPane(list2);
【例】小運用法式有兩個列表,第一個列表只許可單選,第二個列表許可多選。
import java.applet.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; class MyWindow extends JFrame implements ListSelectionListener{ JList list1,list2; String news[]={"國民日報","新平易近晚報","浙江日報","文報告請示"}; String sports[]={"足球","排球","乒乓球","籃球"}; JTextArea text; MyWindow(String s){ super(s); Container con = getContentPane(); con.setBackground(Color.BLUE); con.setLayout(new GridLayout(2,2)); con.setSize(200,500); list1 = new JList(news); list1.setVisibleRowCount(3); list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list1.addListSelectionListener(this); list2 = new JList(sports); list2.setVisibleRowCount(2); list2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); list2.addListSelectionListener(this); con.add(list1); con.add(list2); text= new JTextArea(10,20); con.add(text); this.setVisible(true); this.pack(); } public void valueChanged(ListSelectionEvent e){// 每被選擇值產生更改時挪用 if(e.getSource()==list1){ text.setText(null); Object listValue = ((JList) e.getSource()).getSelectedValue(); String seleName = listValue.toString(); for(int i=0;i<news.length;i++) if(news[i].equals(seleName)){ text.append(seleName+ "被選中\n"); } } else if(e.getSource()==list2){ text.setText(null); int tempList[] =list2.getSelectedIndices(); for(int i=0;i<tempList.length;i++) text.append(sports[tempList[i]] + "被選中\n"); } } } public class Example6_3 extends Applet{ MyWindow myWin = new MyWindow("列表現例"); }
組合框
組合框(JComboBox)是文本框和列表的組合,可以在文本框中輸出選項,也能夠單擊下拉按鈕從顯示的列表中停止選擇。
組合框的經常使用結構辦法:
組合框的其他經常使用辦法有以下幾個:
在JComboBox對象上產生事宜分為兩類。一是用戶選定項目,事宜呼應法式獲得用戶所選的項目。二是用戶輸出項目後按回車鍵,事宜呼應法式讀取用戶的輸出。第一類事宜的接口是ItemListener;第二類事宜是輸出事宜,接口是ActionListener。
【例】一個解釋組合框用法的運用法式。法式中聲明的組合框子類完成ItemLister接口和ActionListener接口。組合框子類的窗口中設置了一個文本框和一個組合框,組合框中有三個選擇。完成接口的監督辦法將組合框的選擇成果在文本框中顯示。
public class Example6_4{ public static void main(String args[]){ ComboBoxDemo mycomboBoxGUI = new ComboBoxDemo(); } } class ComboBoxDemo extends JFrame implements ActionListener,ItemListener{ public static final int Width = 350; public static final int Height = 150; String proList[] = { "踢足球","打籃球","打排球" }; JTextField text; JComboBox comboBox; public ComboBoxDemo(){ setSize(Width,Height); setTitle("組合框應用表示法式"); Container conPane = getContentPane(); conPane.setBackground(Color.BLUE); conPane.setLayout(new FlowLayout()); comboBox = new JComboBox(proList); comboBox.addActionListener(this); combobox.addItemListener(this); comboBox.setEditable(true);//呼應鍵盤輸出 conPane.add(comboBox); text = new JTextField(10); conPane.add(text); this.setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource()==comboBox) text.setText(comboBox.getSelectedItem().toString()); } public void itemStateChanged(ItemEvent e){ if(e.getSource()==comboBox){ text.setText(comboBox.getSelectedItem().toString()); } } }