这是我的问题: 我有一个 jList 和一个弹出菜单。当我右键单击 jList 时,会显示弹出菜单。问题是鼠标指向的 jList 项目不会选择。 我希望它这样做。当我将光标指向列表中的一个项目并按下右键时,我希望发生两件事。选择我单击的项目并显示弹出菜单。
我试过了:
jLists.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
jList.setSelectedIndex(jList.locationToIndex(e.getPoint()));
}
});
jList.setComponentPopupMenu(jPopupMenu);
但它只显示弹出菜单。 如果我删除这一行:
jList.setComponentPopupMenu(jPopupMenu);
然后右键选择有效(但弹出菜单不显示)。
那么,您认为使这两个功能(两者)都起作用的最佳方法是什么?
感谢和抱歉我的英语。
最佳答案
不要做 setComponentPopupMenu。在 MouseAdapter 中执行以下操作:
public void mousePressed(MouseEvent e) {check(e);}
public void mouseReleased(MouseEvent e) {check(e);}
public void check(MouseEvent e) {
if (e.isPopupTrigger()) { //if the event shows the menu
jList.setSelectedIndex(jList.locationToIndex(e.getPoint())); //select the item
jPopupMenu.show(jList, e.getX(), e.getY()); //and show the menu
}
}
这应该可行。
编辑: 代码现在同时检查 press 和 release 事件,因为有些平台在鼠标按下时会显示弹出窗口,而在其他平台在释放时会显示弹出窗口。见 the Swing tutorial了解更多信息。
关于Java swing弹出菜单和jlist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6007891/
我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby数组,我们在StackOverflow上找到一
我正在尝试在Ruby中创建一个菜单,以便根据用户输入的内容,取决于调用的类。然后在这种情况下它将返回到“Main”或类“Options”。我希望有人能帮助我。这是我的代码。modulePhysicsG=21C=20000Pi=3.14D=100endclassOptionsputs"Pleaseselect1forAccelerationand2forEnergy."option=gets()ifoption==1thenputs"AccelCalc"#ThisisthebitthatneedstodirecttheusertotheclassAccelCalcelseputs"Ene
我正在尝试解决我们测试中的一个错误,我认为它应该有效。我很确定这是selectize或capybara中的错误,但我不明白为什么。我已经进入了capybara的源代码,一切似乎都在正常工作。我真的不确定如何前进。为了测试这个错误,我已经尽可能地把这个错误剥离成一个小的testapplication.请参阅下面的设置bugs/show.html.erbOneTwoThreeFourOneTwoThreeFourbug_spec.rbfeature'bug'doit"specsetup",js:truedovisitbug_pathfind('div.selectize-inputinpu
我在HTML页面上有一个文本字段,用于检查您是否输入了1到365之间的值。如果用户输入了无效值,如非数字字符或不在范围内的值,它显示一个弹出窗口。我在watirwiki上看到有一个select_no_wait方法,用于在您从列表中选择无效值时关闭弹出窗口。处理键盘事件时出现的弹出窗口的好方法是什么?我是否需要按照select_no_wait方法的实现方式进行操作,或者我们是否可以启动一个不同的进程来消除调用set方法时可能出现的弹出窗口。带有Javascript验证函数的HTML文件示例如下:varnum=0functionvalidate(e){varcharPressed=Stri
我有一个FinancialDocument#document_type模型属性。我想让用户从由字符串数组填充的HTML选择菜单中选择文档类型...doctypes=['Invoice','Packingslip','Other']对于每个选项,显示的标签和返回的值都是相同的。我查看了select和collection_select助手,但它们似乎适合选择子模型,而不仅仅是一个String值。我找不到如何让它们达到我的目的。这是我正在尝试的方法(我使用的是Haml,而不是Erb)...form_for(@financial_document)do|f|-doctypes=['Invoic
在RSpec中我可以使用这样的代码切换到弹出窗口,link,我怎么能在cucumber步骤中做这样的事情?login_window=page.driver.find_window('PPA_identity_window')main_window=page.driver.find_window('')#Weusethistoexecutethenextinstructionsinthepopupwindowpage.within_window(login_window)do#Normallyfillintheformandloginfill_in'email',:with=>""fil
我有一个ruby脚本(https://github.com/daemonza/MacBak)作为守护进程在我的macbook上运行并监视一堆目录的文件更改和rsync发生的任何更改。我想知道我能否让它在顶部的菜单栏中创建一个图标?只是为了让我知道它确实在运行,而不必使用ps检查它。也许以后如果需要的话,我可能希望能够从那里控制脚本,简单的带有停止和状态条目的下拉菜单等。从ObjectC看来我可以调用NSStatusItem来获取图标,但我真的只是想通过我的Ruby脚本轻松地完成它。也许我可以做一些applescript调用? 最佳答案
这里是新的ROR程序员。我正在尝试构建一个Web应用程序,该应用程序允许用户填写表单,他们在其中输入公司信息,然后通过单击提交,将输入添加到数据库中。目前,如果用户要创建一个新条目,他们会看到几个字段,例如“公司名称”。有一个空白框供他们输入新公司,旁边有一个下拉菜单,用户可以使用该菜单查看数据库中的现有公司。"SelectaCompany")%>我正在寻找一种允许用户输入新公司的方法,或者单击下拉菜单并选择现有公司。目前:如果未在文本框中输入任何内容且未从下拉列表中选择任何选项,则将其保存为空白。如果输入了一些内容,但没有选择任何选项,它将被保存为空白。但是,如果输入内容并从下拉列表
如果我将鼠标悬停在Ruby文件的任何单词上,我会收到一条工具提示消息。该弹出消息的屏幕截图位于popupmessage.cat~/.gvimrc返回:function!SyntaxBalloon()letsynID=synID(v:beval_lnum,v:beval_col,0)letgroupID=synIDtrans(synID)letname=synIDattr(synID,"name")letgroup=synIDattr(groupID,"name")returnname."\n".groupendfunctionsetballoonexpr=SyntaxBalloon()
我的RubyonRails应用程序中有几个模型,如“Plan”、“Tester”、“Module”等。使用activeadmingem,我想为每个实体创建一个页面,并将每个实体放在下面几个不同的菜单。所以我的代码如下所示:ActiveAdmin.registerPlandomenuparent:'Planning',priority:1ActiveAdmin.registerTesterdomenuparent:'Planning',priority:2ActiveAdmin.registerModuledomenuparent:'Bundle',priority:1ActiveAdm