永发信息网

大家看一下java下面的代码 为什么我在List里面点击一下出来2次结果。

答案:2  悬赏:50  手机版
解决时间 2021-03-28 14:34
大家看一下java下面的代码 为什么我在List里面点击一下出来2次结果。
最佳答案
点击鼠标和松开鼠标都会造成状态的改变,从而导致方法的二次调用,楼主可以先点住鼠标不放,而后慢慢松开就会发现打印效果了,一次是在点击的时候打印的,另一次是在松开的时候打印的。呵呵。楼主只要这样修改就可以了
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class MyListTest extends JFrame implements ListSelectionListener{
String [] str ={"数据结构","算法设计","数据库","计算机网络"};
JList list = new JList(str);
MyListTest(){
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(list,"Center");
list.addListSelectionListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
pack();
}
public static void main(String [] args){
new MyListTest();
}

public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()==true){
System.out.println(list.getSelectedValue());
}
}
}
e.getValueIsAdjusting()==true表示是在点击鼠标的时候打印,如果改成false就表示是在松开的时候打印,希望能对楼主有所帮助。
全部回答
List 监听器里面会监听到两个状态
1.某一个选项被选中
2.某一个选项失去选中状态
你在点击某一个选项的时候这两个都会被触发,映像中可以用
e.getState来判断(没查api,你可以查下)是选中还是未选中
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
亲人的亲和方向的向可以组成什么字
青年人用俄语怎么说
天猫技术服务费费率包含什么
开一个洗车加盟店怎么样
机动车行经铁道路口,急转弯,时速不得超过多
博肯布拉克村我想知道这个在什么地方
war3人族兵营怎么造出马里恩(用WE的什么?)
我骨盆骨折,但已经养了二十多天了,为啥睡觉
四川省泸州国宾酒厂今年出的百年老窖多少钱一
请问下从兴义市道广西白色市,能做火车去吗?
s6e+和s7e有很大的差距么
爱可声红宝石哪里有
中源股份怎么样啊?
纠结是等2014 X5还是2013X6,求高人给 点建议
锡山区社保局电话多少
推荐资讯
华为最新款8月发布的新机是哪一款
polomarkp3969价格价格多少
10x+7=14-5-3x
大家在书店买书的时候都知道,新书外面都有一
nhdta201求大神邮箱!!!
公路暴雨推算流量对流域面积有限制吗
有一道题: 两个同心球面,半径分别为10cm和3
请问取出假体哪好?北京什么价?
1988年的二分硬币现在值多少钱
烧头七什么人去
去金三角最近要怎么走?
求动漫男主非常拽的(类似网球王子) 要不隐
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?