如何将MouseListeners添加到JList项目? [英] How do I add MouseListeners to JList items?
问题描述
所以,我想要的东西,是当选择了JList
项目实现MouseListeners
?
So, what I want, is for when a JList
item is selected, for another bit of code to run. But my question is, how do I implement MouseListeners
for specific JList
items?
这是我的代码:
public void launchFrame() {
String selection1 = "";
String[]mainContents = {"Vehicles","Bikes/Bicycles","Boats","Houses","Businesses","Objects","Jobs","Ranks","Licenses"};
String[]selectionVehicles = {};
String[]selectionBikesBicycles = {};
String[]selectionBoats = {};
String[]selectionHouses = {};
String[]selectionBusinesses = {};
String[]selectionObjects = {};
String[]selectionJobs = {};
String[]selectionRanks = {};
String[]selectionLicenses = {};
JFrame f = new JFrame("MTG SAMP Server Reference");
JList listAll = new JList(mainContents);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.pack();
f.setSize(1200, 800);
f.setLocationRelativeTo(null);
f.add(listAll);
listAll.setSize(250, 250);
listAll.setLocation(50, 50);
switch (selection1) {
case "Vehicles":
JList listVehicles = new JList(mainContents);
f.add(listVehicles);
listVehicles.setSize(250, 250);
listVehicles.setLocation(350, 50);
f.repaint();
f.revalidate();
break;
case "Bikes/Bicycles":
JList listBikesBicycles = new JList(mainContents);
f.add(listBikesBicycles);
listBikesBicycles.setSize(250, 250);
listBikesBicycles.setLocation(350, 50);
f.repaint();
f.revalidate();
break;
case "Boats":
JList listBoats = new JList(mainContents);
f.add(listBoats);
listBoats.setSize(250, 250);
listBoats.setLocation(350, 50);
f.repaint();
f.revalidate();
break;
case "Houses":
JList listHouses = new JList(mainContents);
f.add(listHouses);
listHouses.setSize(250, 250);
listHouses.setLocation(350, 50);
f.repaint();
f.revalidate();
break;
case "Businesses":
JList listBusinesses = new JList(mainContents);
f.add(listBusinesses);
listBusinesses.setSize(250, 250);
listBusinesses.setLocation(350, 50);
f.repaint();
f.revalidate();
break;
case "Objects":
JList listObjects = new JList(mainContents);
f.add(listObjects);
listObjects.setSize(250, 250);
listObjects.setLocation(350, 50);
f.repaint();
f.revalidate();
break;
case "Jobs":
JList listJobs = new JList(mainContents);
f.add(listJobs);
listJobs.setSize(250, 250);
listJobs.setLocation(350, 50);
f.repaint();
f.revalidate();
break;
case "Ranks":
JList listRanks = new JList(mainContents);
f.add(listRanks);
listRanks.setSize(250, 250);
listRanks.setLocation(350, 50);
f.repaint();
f.revalidate();
break;
case "Licenses":
JList listLicenses = new JList(mainContents);
f.add(listLicenses);
listLicenses.setSize(250, 250);
listLicenses.setLocation(350, 50);
f.repaint();
f.revalidate();
break;
}
Container contentPaneMain = f.getContentPane();
contentPaneMain.add(new MTGSAMPServerReference());
}
我该怎么做才能将MouseListeners
添加到JList
项目中的车辆",自行车/自行车",船",房屋",企业",对象",工作",排名"和许可证"?
What would I do to add MouseListeners
to the JList
items, "Vehicles", "Bikes/Bicycles", "Boats", "Houses", "Businesses", "Objects", "Jobs", "Ranks",and "Licenses"?
推荐答案
如果您希望在更改选择内容时发生某些事情,则不需要MouseListener,而需要ListSelectionListener
.它不仅是正确的抽象,而且请记住,不使用鼠标就可以更改选择.如今,大多数计算机都配有键盘.
If you want something to happen when the selection changes, you don't want a MouseListener, but a ListSelectionListener
. Not only is it the right abstraction, but remember that the selection can change without using the mouse. Most computer have a keyboard these days.
Swing教程中介绍了使用方法
在您的侦听器内部,获取选定的元素,并采取相应的行动.
Inside your listener, get the element that is selected, and act accordingly.
这篇关于如何将MouseListeners添加到JList项目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!