码迷,mamicode.com
首页 > 编程语言 > 详细

java界面编程(9) ------ 列表框

时间:2017-07-07 13:29:46      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:blog   gravity   default   ddl   item   笔记   字符串数组   file   有一个   

本文是自己学习所做笔记,欢迎转载。但请注明出处:http://blog.csdn.net/jesson20121020

  列表框和JComboBox组合框明显不同,这不不过体如今外观上。

当激活JComboBox组合框时,会出现下拉列表;而JList总是在屏幕上占领固定行的空间,大小也不会改变。

假设要得到列表框中被选中的项目,只需调用getSelectValues(),它能够产生一个字符串数组。里面是被选中的项目名称。

   另外。JList组件也同意多重选择,要是按住ctrl键。连续在多个项目上单击,那么原先选中的项目仍旧保持选中的状态,也就是说能够选中随意多的项目,假设选中了某个项目,按住shift键关单击还有一个项目,那么这两个项目之间的全部项目都将被选中。这和在windows下的操作选中操作类似。

public class List extends JFrame {

	private String[] weekDays = {
			"星期一",
			"星期二",
			"星期三",
			"星期四",
			"星期五",
			"星期六",
			"星期天"
	};
	private DefaultListModel lItems = new DefaultListModel();
	
	private JList lst = new JList(lItems);
	private JTextArea t = new JTextArea(weekDays.length,10);
	private JButton b = new JButton("Add Items");
	
	private int count = 0;
	private ActionListener bl = new ActionListener() {
		
		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			if(count < weekDays.length){
				lItems.add(0, weekDays[count++]);
			}
			else{
				b.setEnabled(false);
			}
		}
	};
	
	private ListSelectionListener ll = new ListSelectionListener() {
		
		@Override
		public void valueChanged(ListSelectionEvent e) {
			// TODO Auto-generated method stub
			if(e.getValueIsAdjusting())
				return ;
			t.setText("");
			for(Object item : lst.getSelectedValues())
				t.append(item + "\n");
		}
	};
	public List() {
		// TODO Auto-generated constructor stub
		
		setLayout(new FlowLayout());
		setVisible(true);
		setSize(300,200);
		t.setEnabled(false);
		Border brd = BorderFactory.createMatteBorder(1, 1, 2, 2, Color.BLACK);
		lst.setBorder(brd);
		t.setBorder(brd);
		for(int i = 0; i < 4;i++){
			lItems.addElement(weekDays[count++]);
		
		}
		add(t);
		add(lst);
		add(b);
		lst.addListSelectionListener(ll);
		b.addActionListener(bl);
		
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new List();
	}
	
}
  运行结果例如以下:

技术分享技术分享技术分享

       事实上在非常多应用程序中都能够见到这样的列表框。另外,当列表框的项目过多时,JList并没有提供滚动,当然了,能够将JList包装到JScrollPane,那么它将会实现滚动的效果。



java界面编程(9) ------ 列表框

标签:blog   gravity   default   ddl   item   笔记   字符串数组   file   有一个   

原文地址:http://www.cnblogs.com/cxchanpin/p/7131430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!