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


    本文是自己学习所做笔记,欢迎转载。但请注明出处: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 + "
    ");
    		}
    	};
    	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,那么它将会实现滚动的效果。



  • 相关阅读:
    Linux 系统挂载数据盘
    Apache Rewrite规则笔记
    linux fdisk分区笔记
    阿里云linux配置
    linux 下安装mysql相关笔记
    ShopNC目录结构分析
    今天开始出发做ShopNC
    svn相关笔记
    linux学习笔记-不定时更新
    Oracle EBS Java Applet报错:找不到类
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7131430.html
Copyright © 2020-2023  润新知