⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testlist.java

📁 疯狂Java讲义_源码(含Java设计模式CHM
💻 JAVA
字号:
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
/**
 * Description:
 * <br/>Copyright (C), 2005-2008, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public class TestList
{
	private JFrame mainWin = new JFrame("测试列表框");
	String[] books = new String[]
	{
		"Spring2.0宝典",
		"轻量级J2EE企业应用实战",
		"基于J2EE的Ajax宝典",
		"Struts2权威指南",
		"ROR敏捷开发最佳实践"
	};
	JList bookList = new JList(books);
	JComboBox bookSelector;
	//定义布局选择按钮所在的面板
	JPanel layoutPanel = new JPanel();
	ButtonGroup layoutGroup = new ButtonGroup();
	//定义选择模式按钮所在的面板
	JPanel selectModePanel = new JPanel();
	ButtonGroup selectModeGroup = new ButtonGroup();
	JTextArea favoriate = new JTextArea(4 , 40);

	public void init()
	{
		//JList的可视高度可同时显示三个列表项
		bookList.setVisibleRowCount(3); 
		//默认选中第三项到第五项(第一项的索引是0)
		bookList.setSelectionInterval(2, 4);
		addLayoutButton("纵向滚动", JList.VERTICAL);
		addLayoutButton("纵向换行", JList.VERTICAL_WRAP);
		addLayoutButton("横向换行", JList.HORIZONTAL_WRAP);
		addSelectModelButton("无限制", ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
		addSelectModelButton("单选", ListSelectionModel.SINGLE_SELECTION);
		addSelectModelButton("单范围", ListSelectionModel.SINGLE_INTERVAL_SELECTION);
		Box listBox = new Box(BoxLayout.Y_AXIS);
		//将JList组件放在JScrollPane中,再将该JScrollPane添加到listBox容器中
		listBox.add(new JScrollPane(bookList));
		//添加布局选择按钮面板、选择模式按钮面板
		listBox.add(layoutPanel);
		listBox.add(selectModePanel);
		//为JList添加事件监听器
		bookList.addListSelectionListener(new ListSelectionListener()
		{
			public void  valueChanged(ListSelectionEvent e)
			{
				//获取用户所选择的所有图书
				Object[] books = bookList.getSelectedValues();
				favoriate.setText("");
				for (Object book : books )
				{
					favoriate.append(book.toString() + "\n");
				}
			}
		});

		Vector<String> bookCollection = new Vector<String>();
		bookCollection.add("Spring2.0宝典");
		bookCollection.add("轻量级J2EE企业应用实战");
		bookCollection.add("基于J2EE的Ajax宝典");
		bookCollection.add("Struts2权威指南");
		bookCollection.add("ROR敏捷开发最佳实践");
		//用一个Vector对象来创建一个JComboBox对象
		bookSelector = new JComboBox(bookCollection);
		//为JComboBox添加事件监听器
		bookSelector.addItemListener(new ItemListener()
		{
			public void itemStateChanged(ItemEvent e) 
			{
				//获取JComboBox所选中的项
				Object book = bookSelector.getSelectedItem();
				favoriate.setText(book.toString());
			}
		});
		
		//设置可以直接编辑
		bookSelector.setEditable(true);
		//设置下拉列表框的可视高度可同时显示4个列表项
		bookSelector.setMaximumRowCount(4);


		JPanel p = new JPanel();
		p.add(bookSelector);
		Box box = new Box(BoxLayout.X_AXIS);
		box.add(listBox);
		box.add(p);
		mainWin.add(box);
		JPanel favoriatePanel = new JPanel();
		favoriatePanel.setLayout(new BorderLayout());
		favoriatePanel.add(new JScrollPane(favoriate));
		favoriatePanel.add(new JLabel("您喜欢的图书:") , BorderLayout.NORTH);
		mainWin.add(favoriatePanel , BorderLayout.SOUTH);

		
		mainWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		mainWin.pack();
		mainWin.setVisible(true);
	}

	private void addLayoutButton(String label, final int orientation)
	{
		layoutPanel.setBorder(new TitledBorder(new EtchedBorder(), "确定选项布局"));
		JRadioButton button = new JRadioButton(label);
		//把该单选按钮添加到layoutPanel面板中
		layoutPanel.add(button);
		//默认选中第一个按钮
		if (layoutGroup.getButtonCount() == 0) 
			button.setSelected(true);
		layoutGroup.add(button);
		button.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent event)
			{
				//改变列表框里列表项的布局方向
				bookList.setLayoutOrientation(orientation);
			}
		});
	}
	private void addSelectModelButton(String label, final int selectModel)
	{
		selectModePanel.setBorder(new TitledBorder(new EtchedBorder(), "确定选择模式"));
		JRadioButton button = new JRadioButton(label);
		//把该单选按钮添加到selectModePanel面板中
		selectModePanel.add(button);
		//默认选中第一个按钮
		if (selectModeGroup.getButtonCount() == 0) 
			button.setSelected(true);
		selectModeGroup.add(button);
		button.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent event)
			{
				//改变列表框里的选择模式
				bookList.setSelectionMode(selectModel);
			}
		});
	}

	public static void main(String[] args) 
	{
		new TestList().init();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -