当前位置: 首页 > 面试题库 >

如何将MouseListeners添加到JList项目?

孙经艺
2023-03-14
问题内容

所以,我想要的JList是选择一个项目时要运行的另一段代码。但是我的问题是,如何MouseListeners对特定JList项目实施?

这是我的代码:

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());
        }

我该怎么做才能添加MouseListenersJList“车辆”,“自行车/自行车”,“船”,“房屋”,“企业”,“对象”,“工作”,“等级”和“许可证”项中?


问题答案:

如果您希望在选择更改时发生某些事情,则不希望使用MouseListener,而希望使用ListSelectionListener。它不仅是正确的抽象,而且请记住,不使用鼠标就可以更改选择。如今,大多数计算机都配有键盘。

Swing教程中描述了如何使用它。

在您的侦听器内部,获取选定的元素,然后采取相应的行动。



 类似资料:
  • 我有两件事情要做:在鼠标悬停时突出显示JPanel,在鼠标拖动时移动一个蓝色方块。问题是,这需要我将MouseListeners添加到不同的组件中。当我这样做时,我只能使用一个功能——另一个被阻止了。我该怎么做才能让两个功能都工作? 注意:有时候JFrame不会显示任何东西——你只需要一直运行它,直到它显示为止(通常需要2-3次尝试)。如果它做了任何其他奇怪的事情,就继续运行它,直到它工作。如果之

  • 问题内容: 我有一个JList,我需要将其放置在滚动窗格中,因为我是从数据库中获取JList的,其值可能会大大增加。我需要能够向下滚动它们,所以我写道: 因为看不到任何ScrollPane,我在做什么错? 问题答案: 该列表已经包含在滚动窗格中,因此您不能将列表添加到主面板。仅滚动窗格。 您做错的另一件事是不使用布局管理器,而是设置组件的边界和大小。不要那样做 让布局管理器为您定位和调整组件的大小

  • 问题内容: 嗨,我必须从一个JList中选择一个元素,将其从第一个元素中删除。我创建的方法仅插入一个元素,覆盖最后一个元素,并且不会从第一个JList中删除所选项目。这是代码: 第一名单 通过此方法填充: 第二个列表,我要在其中插入从第一个列表中删除的项目: 这是无效代码: 谢谢 问题答案: 问题是 您可能要添加一个元素并立即将其删除,因为添加和删除操作都在同一listModel上。 尝试

  • 我已经使用Netbeans GUI构建器创建了我的GUI。JList被添加到scrollpane中,如果我硬编码了JList的内容,所有内容都显示得很好。 但是如果我尝试通过动态添加项,则不会出现任何内容。 我只想显示JList中的主题以供视觉使用,其余的都是在后台完成的。

  • 问题内容: 我有填充我的JList的方法,有没有一种方法可以添加JList中的每个项目? 问题答案: 您可以重写JList的getToolTipText(..)方法。 我相信您也可以使用自定义渲染器来调用setToolTipText(…)方法。

  • 问题内容: Eclipse Helios 3.6 Windows XP SP3 我已经使用Eclipse通过以下方式下载了guava SDK: 1)在Eclipse中,转到 帮助 >安装新软件… 2)在“ 使用: ”文本框中,我使用了以下URL http://svn.codespot.com/a/eclipselabs.org/guava- bundle/trunk/repository/ 3)它