本文主要是介绍Java swing系列之JList类(3),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
import java.awt.BorderLayout;import javax.swing.AbstractListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
/*** 主类* @author Administrator**/public class MyListModelTest {public static void main(String[] args) {// TODO 自动生成的方法存根JFrame frame = new ListModelFrame("列表监听事件实例");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}
}
/*** 定义列表模式窗体类,继承自JFrame* @author Administrator**/
@SuppressWarnings("serial")
class ListModelFrame extends JFrame{public ListModelFrame(String title)//构造方法{super(title);//调用父类函数,设置标题setSize(350, 150);//设置窗体大小final JList wordList;//声明列表对象// 文本框控件final JTextField textField;textField = new JTextField();wordList = new JList(new ListModelTest());//定义列表框并设置其模式wordList.setVisibleRowCount(4);JPanel listPanel = new JPanel();//创建JPanellistPanel.add(new JScrollPane(wordList));//将列表插入滚动条//列表框默认可以选择多个选项,方法是:按住CTRL健,在要选择的选项上单击。//要连续选择选项,必须选择第一个选项,然后按住SHIFT键,在最后一个选项上单击。wordList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //这个设置只能选择一个选项。//wordList.setLayoutOrientation(JList.HORIZONTAL_WRAP);//定义布置列表单元的方式,单元按先水平后垂直排列。//添加列表框到窗体add(listPanel, BorderLayout.CENTER);//添加文本框到窗体add(textField, BorderLayout.SOUTH);//添加列表选择监听器wordList.addListSelectionListener(new ListSelectionListener(){@Overridepublic void valueChanged(ListSelectionEvent e){StringBuilder str = new StringBuilder("您好,");Object valueList[] = wordList.getSelectedValues();//获取选择的内容for(int i=0; i<valueList.length; i++){String s = (String)valueList[i];str.append(s+",");}str.delete(str.toString().length()-1, str.toString().length());str.append("欢迎你!");textField.setText(str.toString());}});}
}@SuppressWarnings("serial")
class ListModelTest extends AbstractListModel{String[] words={"广东","湖南","湖北","广西","四川","黑龙江","河北","甘肃","宁夏","辽宁","吉林","上海","重庆","北京","河南"};@Overridepublic int getSize(){return this.words.length;}@Overridepublic Object getElementAt(int index){return this.words[index];}
}
源代码包:
点击打开链接
这篇关于Java swing系列之JList类(3)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!