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 + "\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,那么它将会实现滚动的效果。

时间: 2024-11-07 23:51:16

java界面编程(9) ------ 列表框的相关文章

Java Swing界面编程(30)---列表框:JList

列表框可以同时将多个选项信息以列表的方式展现给用户,使用JList可以构建一个列表框. package com.beyole.util; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Vector; import javax.swing.BorderFact

java界面编程(8) ------ 组合框(下拉列表)

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 与一组单选按钮的功能类似,组合框(下拉列表)也是强制用户从一组可能的元素中只选择一个,不过,这种方法更加紧凑,而且在不会使用户感到迷惑的前提下,改变下拉列表中内容更加容易. 下面的例子,JComboBox组合框开始时已经有了一些元素,然后当一个按钮按下的时候,将向组合框中加入新的元素. public class ComboBoxes extends JFrame { priva

java 界面编程

转载之u010345869的博客,这里学习下 /* * java复选框和单选按钮 */ import javax.swing.*; import java.awt.*; public class Test0 extends JFrame{ JList jlist; //列表框 JComboBox jcb; //下拉框 JPanel jp1, jp2; //面板 JLabel jlb1, jlb2; JScrollPane jsp; //滚动控件 //构造函数 public Test0(){ jp

java 界面编程(上)

一.AWT介绍 1)AWT(Abstract windows toolkit) 包括了很多类和接口,用于java Application的GUI(Graphics User Interface图形界面编程) 2)GUI的各种元素(窗口,按钮,文本框)等都由java类来实现 3)使用AWT所涉及的类一般在java.awt包及其子包中. 4)Container和Component是AWT中的两个核心类. 所有的可以显示出来的图形元素都被称为Componnet,Component代表了所有的可见的图形

Java界面编程-建立一个可以画出图形的简单框架

引子:总共使用3个.java文件,建立一个简单界面编程的框架. 第1个文件:NotHelloWorldComponent.java //NotHelloWorldComponent.java 1 import java.awt.*; 2 import java.awt.geom.*; 3 import javax.swing.*; 4 5 public class NotHelloWorldComponent extends JComponent { 6 public static final

java界面编程(1) ------ Swing基础

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 最近想学下java的界面编程,在此记录下.    大多数的Swing应用都被构建在基础的JFrame内部,JFrame在你作用的任何操作系统中都可以创建视窗应用. 看如下一个最简单的JFrame例子: JFrame frame = new JFrame("Hello Swing"); frame.setDefaultCloseOperation(JFrame.EXIT

java 界面编程中 JButton问题

在图形化界面编程中,按钮JButton使用时需要布置按钮的位置,更改按钮大小. 1)按钮初始化 JButton button = new JButton() /*在new JButton()括号中可以添加按钮显示的字符等 JButton button = new JButton("JButtonExample") 但是不能初始化按钮的大小和位置*/ 2)JButton按钮的在面板中位置的确定 对JButton大小的设置     ——因为JButton是属于小器件类型的,所以一般的set

NX二次开发-Block UI C++界面List Box(列表框)控件的获取(持续补充)

1 获得当前选择的 2 //列表框控件 3 PropertyList* ExpressionListProperties = list_box0->GetProperties(); 4 std::vector<NXOpen::NXString> listStrings = ExpressionListProperties->GetStrings("ListItems"); 5 std::vector<int> index = ExpressionLi

java界面编程(3) ------ 控制布局

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 在java 中,组件放置在窗体上的方式可能与其他的GUI系统都不相同.首先,它完全基于代码,没有用来控制组件布置的"资源".第二,组件旋转在窗体上的方式不是通过绝对坐标控制,而是由"布局管理器"根据组件加入的顺序决定位置.使用不同的布局管理器,组件的大小,形状和位置将大不相同,此外,布局管理器还可以适应applet或应用程序窗口的大小,所以如果窗口