标签:
列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择。
列表(JList)在界面中表现为列表框,是JList类或它的子类的对象。程序可以在列表框中加入多个文本选择项条目。列表事件的事件源有两种:
JList 类的常用构造方法:
JList类的常用方法:
列表可以添加滚动条,列表添加滚动条的方法是先创建列表,然后再创建一个JScrollPane滚动面板对象,在创建滚动面板对象时指定列表。以下代码示意为列表list2添加滚动条:
JScrollPane jsp = new JScrollPane(list2);
【例 11-13】小应用程序有两个列表,第一个列表只允许单选,第二个列表允许多选。
1 import java.applet.*; 2 import javax.swing.*; 3 import java.awt.*; 4 import java.awt.event.*; 5 class MyWindow extends JFrame implements ListSelectionListener{ 6 JList list1,list2; 7 String news[]={"人民日报","新民晚报","浙江日报","文汇报"}; 8 String sports[]={"足球","排球","乒乓球","篮球"}; 9 JTextArea text; 10 MyWindow(String s){ 11 super(s); 12 Container con = getContentPane(); 13 con.setBackground(Color.BLUE); 14 con.setLayout(new GridLayout(2,2)); 15 con.setSize(200,500); 16 list1 = new JList(news); 17 list1.setVisibleRowCount(3); 18 list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 19 list1.addListSelectionListener(this); 20 list2 = new JList(sports); 21 list2.setVisibleRowCount(2); 22 list2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 23 list2.addListSelectionListener(this); 24 con.add(list1); 25 con.add(list2); 26 text= new JTextArea(10,20); 27 con.add(text); 28 this.setVisible(true); 29 this.pack(); 30 } 31 public void valueChanged(ListSelectionEvent e){// 每当选择值发生更改时调用 32 if(e.getSource()==list1){ 33 text.setText(null); 34 Object listValue = ((JList) e.getSource()).getSelectedValue(); 35 String seleName = listValue.toString(); 36 for(int i=0;i<news.length;i++) 37 if(news[i].equals(seleName)){ 38 text.append(seleName+ "被选中\n"); 39 } 40 } 41 else if(e.getSource()==list2){ 42 text.setText(null); 43 int tempList[] =list2.getSelectedIndices(); 44 for(int i=0;i<tempList.length;i++) 45 text.append(sports[tempList[i]] + "被选中\n"); 46 } 47 } 48 } 49 public class Example6_3 extends Applet{ 50 MyWindow myWin = new MyWindow("列表示例"); 51 }
组合框(JComboBox)是文本框和列表的组合,可以在文本框中输入选项,也可以单击下拉按钮从显示的列表中进行选择。
组合框的常用构造方法:
组合框的其他常用方法有以下几个:
在JComboBox对象上发生事件分为两类。一是用户选定项目,事件响应程序获取用户所选的项目。二是用户输入项目后按回车键,事件响应程序读取用户的输入。第一类事件的接口是ItemListener;第二类事件是输入事件,接口是ActionListener。
【例 11-14】一个说明组合框用法的应用程序。程序中声明的组合框子类实现ItemLister接口和ActionListener接口。组合框子类的窗口中设置了一个文本框和一个组合框,组合框中有三个选择。实现接口的监视方法将组合框的选择结果在文本框中显示。
1 public class Example6_4{ 2 public static void main(String args[]){ 3 ComboBoxDemo mycomboBoxGUI = new ComboBoxDemo(); 4 } 5 } 6 class ComboBoxDemo extends JFrame implements ActionListener,ItemListener{ 7 public static final int Width = 350; 8 public static final int Height = 150; 9 String proList[] = { "踢足球","打篮球","打排球" }; 10 JTextField text; 11 JComboBox comboBox; 12 public ComboBoxDemo(){ 13 setSize(Width,Height); 14 setTitle("组合框使用示意程序"); 15 Container conPane = getContentPane(); 16 conPane.setBackground(Color.BLUE); 17 conPane.setLayout(new FlowLayout()); 18 comboBox = new JComboBox(proList); 19 comboBox.addActionListener(this); 20 combobox.addItemListener(this); 21 comboBox.setEditable(true);//响应键盘输入 22 conPane.add(comboBox); 23 text = new JTextField(10); 24 conPane.add(text); 25 this.setVisible(true); 26 } 27 public void actionPerformed(ActionEvent e){ 28 if(e.getSource()==comboBox) 29 text.setText(comboBox.getSelectedItem().toString()); 30 } 31 public void itemStateChanged(ItemEvent e){ 32 if(e.getSource()==comboBox){ 33 text.setText(comboBox.getSelectedItem().toString()); 34 } 35 } 36 }
系列文章:
标签:
原文地址:http://www.cnblogs.com/Coda/p/4567121.html