该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
elseif(e.getSource()==list2){
text.setText(null);
int tempList[] =list2.getSelectedIndices();
for(inti=0;i
text.append(sports[tempList[i]] + "被选中\n");
}
着一段,我试过可以改成
Object templist[] = list2.getSelectedValues();
for(inti=0;i
text.append(templist[i] + "被选中\n");
运行结果是一样的,就是getSelectedValues()被加了删除线,说是deprecated
如果不想像原题那样写成[tempList[i]],又不想用deprecated的方法,应该怎么写呢?
=============================================================
【例 11-13】小应用程序有两个列表,第一个列表只允许单选,第二个列表允许多选。
import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MyWindow extends JFrame implementsListSelectionListener{
JListlist1,list2;
String news[]={"人民日报","新民晚报","浙江日报","文汇报"};
String sports[]={"足球","排球","乒乓球","篮球"};
JTextArea text;
MyWindow(Strings){
super(s);
Containercon = getContentPane();
con.setBackground(Color.BLUE);
con.setLayout(new GridLayout(2,2));
con.setSize(200,500);
list1 = newJList(news);
list1.setVisibleRowCount(3);
list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list1.addListSelectionListener(this);
list2 = newJList(sports);
list2.setVisibleRowCount(2);
list2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
list2.addListSelectionListener(this);
con.add(list1);
con.add(list2);
text= newJTextArea(10,20);
con.add(text);
this.setVisible(true);
this.pack();
}
public voidvalueChanged(ListSelectionEvent e){// 每当选择值发生更改时调用
if(e.getSource()==list1){
text.setText(null);
Object listValue = ((JList) e.getSource()).getSelectedValue();
StringseleName = listValue.toString();
for(inti=0;i
if(news[i].equals(seleName)){
text.append(seleName+ "被选中\n");
}
}
elseif(e.getSource()==list2){
text.setText(null);
int tempList[] =list2.getSelectedIndices();
for(inti=0;i
text.append(sports[tempList[i]] + "被选中\n");
}
}
}
public class Example6_3 extends Applet{
MyWindow myWin= new MyWindow("列表示例");
}