永发信息网

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

答案:2  悬赏:50  手机版
解决时间 2021-03-28 14:34
  • 提问者网友:疯子也有疯子的情调
  • 2021-03-27 19:15
大家看一下java下面的代码 为什么我在List里面点击一下出来2次结果。
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-03-27 20:11
点击鼠标和松开鼠标都会造成状态的改变,从而导致方法的二次调用,楼主可以先点住鼠标不放,而后慢慢松开就会发现打印效果了,一次是在点击的时候打印的,另一次是在松开的时候打印的。呵呵。楼主只要这样修改就可以了
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就表示是在松开的时候打印,希望能对楼主有所帮助。
全部回答
  • 1楼网友:忘川信使
  • 2021-03-27 20:24
List 监听器里面会监听到两个状态
1.某一个选项被选中
2.某一个选项失去选中状态
你在点击某一个选项的时候这两个都会被触发,映像中可以用
e.getState来判断(没查api,你可以查下)是选中还是未选中
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯