java的JList监听判断怎么写?
4个回答
展开全部
主要的就是监听要用ListSelectionListener,对整个jlist进行监听即可,事件源e.getSource要强转为JList,下面给出刚写的例子:
public class BaiDuKnows extends JFrame implements ListSelectionListener
{
//创建列表
private JList jl=new JList();
private JLabel label =new JLabel("香蕉苹果大鸭梨等待你的选择!");
//创建字符串数组
private String[] str={"香蕉","苹果","大鸭梨"};
//创建复选框数组
public BaiDuKnows()
{
//设置列表的数据模型
jl.setListData(str);
//为列表注册ListSelectionEvent监听器
jl.addListSelectionListener(this);
jl.setBounds(0, 0, 150, 200);
label.setBounds(180, 0, 200, 200);
this.add(jl);
this.add(label);
this.setLayout(null);
this.setBounds(100,100,360,250);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//实现ListSelectionListener接口中的事件处理方法
public void valueChanged(ListSelectionEvent e)
{
Object obj=((JList)e.getSource()).getSelectedValue();
if(obj.equals("香蕉"))
{
label.setText("你选的是banana");
}
else if(obj.equals("苹果"))
{
label.setText("你选的是apple");
}
else if(obj.equals("大鸭梨"))
{
label.setText("你选的是pear");
}
else
{
label.setText("你选的是球!!");
}
}
public static void main(String[] args)
{
new BaiDuKnows();
}
}
public class BaiDuKnows extends JFrame implements ListSelectionListener
{
//创建列表
private JList jl=new JList();
private JLabel label =new JLabel("香蕉苹果大鸭梨等待你的选择!");
//创建字符串数组
private String[] str={"香蕉","苹果","大鸭梨"};
//创建复选框数组
public BaiDuKnows()
{
//设置列表的数据模型
jl.setListData(str);
//为列表注册ListSelectionEvent监听器
jl.addListSelectionListener(this);
jl.setBounds(0, 0, 150, 200);
label.setBounds(180, 0, 200, 200);
this.add(jl);
this.add(label);
this.setLayout(null);
this.setBounds(100,100,360,250);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//实现ListSelectionListener接口中的事件处理方法
public void valueChanged(ListSelectionEvent e)
{
Object obj=((JList)e.getSource()).getSelectedValue();
if(obj.equals("香蕉"))
{
label.setText("你选的是banana");
}
else if(obj.equals("苹果"))
{
label.setText("你选的是apple");
}
else if(obj.equals("大鸭梨"))
{
label.setText("你选的是pear");
}
else
{
label.setText("你选的是球!!");
}
}
public static void main(String[] args)
{
new BaiDuKnows();
}
}
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设置监听事件,然后根据选择的index,position判断就是
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JList 列表组建
构造方法: 可传入数组、向量、列表模型
列表模型 JList(ListModel dataModel)
ListModel 是一个接口,一般使用它的子类DefaultListModel
DefaultListModel dl=new DefaultListModel();
JList list=new JList(dl);
使用列表模型主要针对列表模型可以监听列表内容的改变
常用方法: setSelectionMode(int selectionMode) 设置选择模式
selectionMode的取值:ListSelectionModel.SINGLE_SELECTION
ListSelectionModel.SINGLE_INTERVAL_SELECTION
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
int型表示: 0表示不能多选 1表示可多选单不能跳选
2表示可多选并且可以跳选
locationToIndex() 获取该点上选项的索引值
使用: Point p=e.getPoint();
int n=list.locationToIndex(p);
常用事件: 列表内容改变监听>>ListDataListener
public void intercalRemoved( ListDataEvent e) {
}
public void intervalAdded( ListDataEvent e) {
}
public void contentsChanged( ListDataEvent e) {
}
选项改变事件监听>>ListSelectionListener
public void valueChanged( ListSelectionEvent e){
}
是我自己总结的,不是很全面
构造方法: 可传入数组、向量、列表模型
列表模型 JList(ListModel dataModel)
ListModel 是一个接口,一般使用它的子类DefaultListModel
DefaultListModel dl=new DefaultListModel();
JList list=new JList(dl);
使用列表模型主要针对列表模型可以监听列表内容的改变
常用方法: setSelectionMode(int selectionMode) 设置选择模式
selectionMode的取值:ListSelectionModel.SINGLE_SELECTION
ListSelectionModel.SINGLE_INTERVAL_SELECTION
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
int型表示: 0表示不能多选 1表示可多选单不能跳选
2表示可多选并且可以跳选
locationToIndex() 获取该点上选项的索引值
使用: Point p=e.getPoint();
int n=list.locationToIndex(p);
常用事件: 列表内容改变监听>>ListDataListener
public void intercalRemoved( ListDataEvent e) {
}
public void intervalAdded( ListDataEvent e) {
}
public void contentsChanged( ListDataEvent e) {
}
选项改变事件监听>>ListSelectionListener
public void valueChanged( ListSelectionEvent e){
}
是我自己总结的,不是很全面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不 是有个选择的listener吗
追问
我不知道怎么判断,监听器会写,但是怎么判断选中的是香蕉还是苹果?
追答
你的意思是,你只是不会判断选择的是哪个元素而已??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询