jjzjj

jpopupmenu

全部标签

java - 如何在 JPopupMenu 中选择第一项?

过去,当一个JPopupMenu可见时,它的第一项将默认被选中:http://weblogs.java.net/blog/alexfromsun/archive/2008/02/jtrayicon_updat.html如今,默认行为是在未选择任何项目的情况下弹出菜单。我想创建一个JPopupMenu,其中包含一个项目,该项目将被选中并在鼠标指针下方居中。我已经设法让该项目在鼠标下方居中弹出,但我JMenuItem拒绝呈现,就好像它被选中一样。如果我将鼠标移出该项目并返回,则会正确选择。有什么想法吗?这是我的测试用例:importjava.awt.Component;importjava

java - 如何在 JPopupMenu 中获得焦点

我是一个经验丰富的Java程序员,但是一个Swing新手所以请多多包涵。我希望有一个具有键盘焦点的JPopupWindow。我想响应方向键、转义键(关闭菜单)和回车键(调用项目)。我必须在菜单中添加一个KeyListener并自己编写代码,还是我可以设置某种“模式”来激活这种行为,这似乎应该是标准的。JPopupMenus上的标准Swing教程部分只谈到助记符和加速器。我不是特别想要那些。很难相信这完全违背了JPopupMenu的风格。实现我想要的东西的最佳方法是什么? 最佳答案 一旦您执行了jpopupMenu.show(Comp

java - 查找已调用弹出菜单的 JTable 行

我有一个JTable和一个特定于每一行的弹出菜单。我想计算用户右键单击鼠标(WindowsL&F)以调出弹出菜单的行。我为表格创建了一个MouseListener,因此它在单击时获取MouseEvent,并在正确的位置显示弹出菜单。但是当用户从弹出菜单中选择一个项目时,我无法想出一种方法来确定用户首先右键单击的行。弹出菜单调用的事件不再具有发生右键单击的x、y坐标。我查看了获取弹出窗口的位置,但它属于框架,而不是表格,所以它和它的父项都没有我想要的正确x、y值。我通过子类化JPopupMenu并设置我希望它在MouseListener中具有的x和y值来解决这个问题。但在我看来,对于任何

java - 如何在 Java 中创建带有子菜单的弹出菜单

我想为我的程序添加右键单击菜单。我使用以下代码添加了基础菜单:Pmenu=newJPopupMenu("Menu");menuItem=newJMenuItem("Sections");Pmenu.add(menuItem);menuItem=newJMenuItem("Numbers");Pmenu.add(menuItem);但是我想向这些菜单添加子菜单,例如用户将鼠标悬停在“部分”菜单上,子菜单将打开并显示部分。 最佳答案 首先,对象名称通常以小写字母开头,大写字母通常用于类/接口(interface)名称。对于你的问题,这里

java - 创建一个检查属性窗口,按钮作为 JDialog 驱动

我最初问的没有明确说明我的问题/问题,所以我会更好地解释它。我有一个将JDialog设置为可见的JButton。JDialog有一个WindowListener将其设置为在windowDeactivated()事件中不可见,该事件在用户单击对话框外部时触发。按钮ActionListener检查对话框是否可见,如果为真则隐藏它,如果为假则显示它。windowDeactivated()无论是否点击按钮都会触发,只要用户在对话框外点击。我遇到的问题是当用户单击按钮关闭对话框时。对话框由WindowListener关闭,然后ActionListener尝试显示它。如果windowDeactiv

java - JPopupMenu 上的 JComboBox

我正在尝试使用复合Swing组件作为菜单的一部分。一切正常,除了一个细节:该组件包含JComboBoxes,每当用户单击其中一个以打开其下拉菜单时,下拉菜单打开但菜单消失。单击JComboBox时是否可以使菜单保持打开状态?我对JMenu进行了子类化。这是相应的代码:publicclassFilterMenuextendsJMenu{publicFilterMenu(Stringname){super(name);finalJPopupMenupm=this.getPopupMenu();finalFilterPanelfilterPanel=newFilterPanel(pm){@O

java - 从 JButton 显示/隐藏 JPopupMenu; FocusListener 不工作?

我需要一个带有附加下拉式菜单的JButton。所以我采用了JPopupMenu并将其附加到JButton,如下面的代码所示。它需要做的是:点击时显示弹出窗口第二次点击隐藏如果在弹出窗口中选择了一个项目则隐藏它如果用户点击屏幕上的其他地方则隐藏它这4件事有效,但由于我使用的boolean标志,如果用户单击其他地方或选择一个项目,我必须在按钮再次显示之前单击两次。这就是为什么我尝试添加一个FocusListener(它绝对没有响应)来解决这个问题并在这些情况下将标志设置为false。编辑:在回答帖子中的最后一次尝试......这是监听器:(它在扩展JButton的类中,所以第二个监听器在J

java - 如何获取调用 JPopupMenu 的组件?

我有一个添加到多个JTables的JPopUpMenu,我想获得右键单击的特定表,以便我可以对其进行更改。如何在ActionListener中获取触发JPopupMenu的组件?JPopupMenupopupMenu=newJPopupMenu();JMenuItemmenuItemRename=newJMenuItem("Rename");popupMenu.add(menuItemRename);table.getTableHeader().setComponentPopupMenu(popupMenu);ActionListenermenuListener=newActionLi

java - 如果我在 JPopupMenu 外部单击,它不会关闭

我创建了一个JavaSwing应用程序,它没有可见的主窗口,但可以通过右键单击通过其托盘图标进行控制。我正在为此使用JPopupMenu,但是当我在弹出菜单外单击时(例如,在另一个应用程序的窗口或桌面上),JPopupMenu不会消失,这不是预期的行为。最初我使用的是按预期工作的弹出菜单,但这不允许我在菜单中包含图标。当我点击其他地方时,如何让它像预期的那样关闭? 最佳答案 //_PopupisyourJPopupMenu,callthismethodbeforesettingyourpopuptovisiblepublicvoid

java - JTable 与 JPopupMenu

只有当MouseCursor位于选定的JTable'Row上时,我如何才能阻止触发和显示JPopupMenu我的问题:是否有另一种方法作为getBounds来自所选行并确定/比较它与Mouse位置......我的简单sscce演示了不想要的相反状态,可以选择任何行并且从整个JTable触发JPopupMenuimportjava.awt.event.*;importjavax.swing.*;importjavax.swing.table.*;publicclassTableCheckBoxextendsJFrame{privatestaticfinallongserialVersio