java - How to get items from JList in the order they are selected? -
i have jlist multiple_interval_selection enabled , i'd pass order in items selected process.
i've tried using mouselistener on jlist , checking if getclickcount() == 1 add array, however, not add new items below selected item, adds items above selected item in jlist.
for example if list looks this:
1
2
3
4
5
if click number 1 first, below code show 1 every subsequent click. if click 3 first , click 5 number pops 3. if click 3 , click 2 or 1, numbers popup correctly.
so never part of adding data array because cannot data display based action correctly.
here sample code listener:
private class listboxlistener implements listselectionlistener, mouselistener { @override public void valuechanged(listselectionevent e) { if(e.getsource().equals(alist)) { system.out.println(alist.getselectedvalue()); } } @override public void mouseclicked(mouseevent arg0) { // todo auto-generated method stub if(arg0.getclickcount() == 1) { joptionpane.showmessagedialog(null, alist.getselectedvalue()); } } } is there glaringly wrong i'm trying do?
you should try code
jframe frame = new jframe("jlist test"); frame.setlayout(new flowlayout()); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setlocationrelativeto(null); string[] selections = {"java", "c++", "c", "scala", "javascript"}; jlist list = new jlist(selections); frame.add(new jscrollpane(list)); frame.pack(); frame.setvisible(true); mouselistener mouselistener = new mouseadapter() { @override public void mouseclicked(mouseevent mouseevent) { if (mouseevent.getclickcount() == 1) { int index = list.locationtoindex(mouseevent.getpoint()); if (index >= 0) { object obj = list.getmodel().getelementat(index); joptionpane.showmessagedialog(null, obj); } } } }; list.addmouselistener(mouselistener); }
Comments
Post a Comment