博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理

博为峰小博老师:

在JList类中有addListSelectionListener()方法,可以检测用户是否对JList的选取有任何的改变。在ListSelectionListener接口中只定义一个方法,那就是valueChanged(ListSelectionEvente),所以必须实现这个方法,才能在用户改变选取值时取得用户最后的选取状态。

这个程序首先使用数组创建了一个列表框对象,然后再通过实现列表框的事件处理方法,让列表框中选项被选中时在标签组件中显现出来,其代码程序如下所示:

publicclassBWFimplementsListSelectionListener{

staticJListlist=null;

staticJLabellabel=null;

publicstaticvoidmain(String[]args) {

JFramejf=newJFrame("博为峰教育");

ContainercontentPane=jf.getContentPane();

ListModelmode=newDataModel();

label=newJLabel();

list=newJList(mode);

list.setVisibleRowCount(5);

list.setBorder(BorderFactory.createTitledBorder("电脑配件"));

list.addListSelectionListener(newBWF());

contentPane.add(label,BorderLayout.NORTH);

contentPane.add(newJScrollPane(list),BorderLayout.CENTER);

jf.pack();

jf.setVisible(true);

jf.addWindowListener(newWindowAdapter() {

publicvoidwindowClosing(WindowEvente) {

System.exit(0);

}

});

}

publicvoidvalueChanged(ListSelectionEvente) {

inttmp=0;

Stringstmp="您目前选取:";

int[]index=list.getSelectedIndices();//所选数据的序列号

for(inti=0;i

tmp=index[i];

stmp+=newDataModel().s[tmp]+" ";

}

label.setText(stmp);

}

}

classDataModelextendsAbstractListModel{

publicstaticString[]s={"主板","显示器","内存","CPU","硬盘","电源","键盘","鼠标","显卡"};

publicintgetSize() {

returns.length;

}

publicString getElementAt(intindex) {

return(index+1)+"."+s[index++];

}

}

博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理_第1张图片

博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理_第2张图片

你可能感兴趣的:(博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理)