博為峰小博老師:
在JList類中有addListSelectionListener()方法,可以檢測用戶是否對JList的選取有任何的改變哥放。在ListSelectionListener接口中只定義一個方法歼指,那就是valueChanged(ListSelectionEvente),所以必須實現(xiàn)這個方法甥雕,才能在用戶改變選取值時取得用戶最后的選取狀態(tài)踩身。
這個程序首先使用數(shù)組創(chuàng)建了一個列表框?qū)ο?/a>,然后再通過實現(xiàn)列表框的事件處理方法社露,讓列表框中選項被選中時在標(biāo)簽組件中顯現(xiàn)出來挟阻,其代碼程序如下所示:
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();//所選數(shù)據(jù)的序列號
for(inti=0;i
tmp=index[i];
stmp+=newDataModel().s[tmp]+" ";
}
label.setText(stmp);
}
}
classDataModelextendsAbstractListModel{
publicstaticString[]s={"主板","顯示器","內(nèi)存","CPU","硬盤","電源","鍵盤","鼠標(biāo)","顯卡"};
publicintgetSize() {
returns.length;
}
publicString getElementAt(intindex) {
return(index+1)+"."+s[index++];
}
}