java界面编程 ------ 列表框

Posted cxchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java界面编程 ------ 列表框相关的知识,希望对你有一定的参考价值。

本文是自己学习所做笔记,欢迎转载。但请注明出处: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界面编程 ------ 列表框的主要内容,如果未能解决你的问题,请参考以下文章

如何直接用java Swing写日期下拉列表框

JAVA swing常用组件

MFC编程 -- 高级列表框添加数据

02 图形化界面中的shell 编程

java GUI编程(swing)之四swing下拉框,列表框,滚动窗口

java图形用户界面编程实例,经典好文