如何将MouseListeners添加到JList项目? [英] How do I add MouseListeners to JList items?

查看:83
本文介绍了如何将MouseListeners添加到JList项目?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,我想要的东西,是当选择了项目的,对于另一个代码位运行.但是我的问题是,如何为特定的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆