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界面编程 ------ 列表框的主要内容,如果未能解决你的问题,请参考以下文章