SINGLE_SELECTION与SINGLE_INTERVAL_SELECTION区别 SINGLE_SELECTION允许一次选择一行。 SINGLE_INTERVAL_SELECTION允许选择相邻的一系列行。 MULTIPLE_INTERVAL_SELECTION也允许选择相邻的列,但是带有扩展功能。但是我发现两个SINGLE_SELECTION与SINGLE_INTERVAL_SELECTION都是只能选一行啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SINGLE_INTERVAL_SELECTION 要按着Shift才能选中多个 为什么这个SINGLE_INTERVAL_SELECTION 要按着Shift也不能选中多个import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class My12 extends JFrame implements ListSelectionListener,ItemListener{ private JLabel jl1,jl2; private JList jlist; private JComboBox jcb; String[] countries={"United States","United Kingdom","China","Germany","France","Canada"}; My12() { super("Exercise 11.14"); //初始化组件 jl1=new JLabel("Choose Selection Mode"); jl2=new JLabel(); jlist=new JList(countries); jcb=new JComboBox(); jcb.addItem("Single_Selection"); jcb.addItem("Single_Interval_Selection"); jcb.addItem("Multiple_Interval_Selection"); jcb.setSelectedIndex(2); //创建面板并组合到框架 JPanel jp1=new JPanel(); jp1.setLayout(new FlowLayout()); jp1.add(jl1); jp1.add(jcb); getContentPane().setLayout(new BorderLayout()); getContentPane().add(jp1,BorderLayout.NORTH); getContentPane().add(jlist,BorderLayout.CENTER); getContentPane().add(jl2,BorderLayout.SOUTH); //注册事件侦听器 jcb.addItemListener(this); jlist.addListSelectionListener(this); } //事件处理函数 public void itemStateChanged(ItemEvent e) { int i; for(i=0;i<3;i++) { if (jcb.getSelectedItem()==jcb.getItemAt(i)) { break; } } switch(i) { case 0:{jlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);break;} case 1:{jlist.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);break;} case 2:{jlist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);break;} default:break; } } public void valueChanged(ListSelectionEvent e) { int[] index=jlist.getSelectedIndices(); String out=new String(); for(int i=0;i<index.length;i++) { out+=countries[index[i]]; } jl2.setText(out); } //main public static void main(String[] args) { My12 my12=new My12(); my12.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); my12.pack(); my12.setVisible(true); }} java反射 获取类里的一个静态类 倒底java有没有办法将内存中的PCM声音数据直接播放? 读取最后一行记录! 改正错误! ftp 上传文件的问题 请介绍一个好的java decompiler,必须你用过的,能反编译内部类的! 为啥含有ActiveX的htm网页文件在网络上运行有问题!? 关于电子地图 怎样在拖动鼠标的时候动态的画出直线? 关于一个提示对话框的问题! Java程序 jsp取存储过程返回值的问题! 什么是第三方包?
为什么这个SINGLE_INTERVAL_SELECTION 要按着Shift也不能选中多个import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class My12 extends JFrame implements ListSelectionListener,ItemListener
{
private JLabel jl1,jl2;
private JList jlist;
private JComboBox jcb;
String[] countries={"United States","United Kingdom","China","Germany","France","Canada"};
My12()
{
super("Exercise 11.14");
//初始化组件
jl1=new JLabel("Choose Selection Mode");
jl2=new JLabel();
jlist=new JList(countries);
jcb=new JComboBox();
jcb.addItem("Single_Selection");
jcb.addItem("Single_Interval_Selection");
jcb.addItem("Multiple_Interval_Selection");
jcb.setSelectedIndex(2);
//创建面板并组合到框架
JPanel jp1=new JPanel();
jp1.setLayout(new FlowLayout());
jp1.add(jl1);
jp1.add(jcb);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(jp1,BorderLayout.NORTH);
getContentPane().add(jlist,BorderLayout.CENTER);
getContentPane().add(jl2,BorderLayout.SOUTH);
//注册事件侦听器
jcb.addItemListener(this);
jlist.addListSelectionListener(this);
}
//事件处理函数
public void itemStateChanged(ItemEvent e)
{
int i;
for(i=0;i<3;i++)
{
if (jcb.getSelectedItem()==jcb.getItemAt(i))
{
break;
}
}
switch(i)
{
case 0:{jlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);break;}
case 1:{jlist.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);break;}
case 2:{jlist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);break;}
default:break;
}
}
public void valueChanged(ListSelectionEvent e)
{
int[] index=jlist.getSelectedIndices();
String out=new String();
for(int i=0;i<index.length;i++)
{ out+=countries[index[i]];
}
jl2.setText(out);
}
//main
public static void main(String[] args)
{
My12 my12=new My12();
my12.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
my12.pack();
my12.setVisible(true);
}
}