所以,我想要的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());
}
我该怎么做才能添加MouseListeners
到JList
“车辆”,“自行车/自行车”,“船”,“房屋”,“企业”,“对象”,“工作”,“等级”和“许可证”项中?
如果您希望在选择更改时发生某些事情,则不希望使用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)它