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

Java Swing JTable;右键单击菜单(如何使其“选择”又是突出显示行)

齐胜涝
2023-03-14
问题内容

简短:我需要一个“右键单击事件”来突出显示单元格行。

我在Java Swing(Netbeans
Matisse)的ScrollPane中使用JTable。我在JTable上有一个MouseClicked事件侦听器,该侦听器执行以下操作:

if (evt.getButton() == java.awt.event.MouseEvent.BUTTON3) {
          System.out.println("Right Click");
          JPopUpMenu.show(myJTable, evt.getX(), evt.getY())
}

问题是…每当我在JTable上单击鼠标右键时,该行都不会突出显示(我将选择设置为仅行行)。我已经寻找了几个setSelected()函数,但是找不到合适的函数。默认情况下,单击鼠标左键会自动突出显示该行。如何设置右键单击?


问题答案:

像这样:

table.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseReleased(MouseEvent e) {
        int r = table.rowAtPoint(e.getPoint());
        if (r >= 0 && r < table.getRowCount()) {
            table.setRowSelectionInterval(r, r);
        } else {
            table.clearSelection();
        }

        int rowindex = table.getSelectedRow();
        if (rowindex < 0)
            return;
        if (e.isPopupTrigger() && e.getComponent() instanceof JTable ) {
            JPopupMenu popup = createYourPopUp();
            popup.show(e.getComponent(), e.getX(), e.getY());
        }
    }
});

......



 类似资料:
  • 问题内容: 我想知道是否有最佳实践/正确的方法来为React组件设置右键菜单。 我目前有这个… 可以,但是感觉有点混乱,我想知道是否还有其他方法可以使用,任何信息将不胜感激, 谢谢! 问题答案: 更新: 想通了-这是您可以做的 在渲染中,您可以将函数传递给onContextMenu,以使该react组件发生右键单击。

  • 问题内容: 我们正在IntelliJ中创建一个新项目,并且一定有问题,因为当我们右键单击目录时,选择“ 新建” ,然后获得上下文菜单,则不会显示基于Java的选项。当前获得诸如文件,一些HTML选项,XML选项之类的东西。 到目前为止,我们已经假设这是在Project / Module配置中尚未正确配置的东西。我们正在讨论的新模块是多模块项目的一部分。我们使用Maven网络原型创建了它。 对配置项

  • 我知道如何通过鼠标左键点击所选项目来获取项目。我可以使用。 但我需要用鼠标右键点击项目。显示与单击的项目相关的弹出菜单。我试过这个: 但如果用户用右键点击该项,则会出现问题。右键单击不选择项目。如何按事件坐标选择项目或如何解决此问题?主要我需要得到的对象是点击没有选择项目,如果可能的话。

  • 问题内容: AngularJS是否可以在当前页面的链接上设置类提供任何帮助? 我想象有一种神奇的方法可以完成,但是我似乎找不到。 我的菜单如下: 并且我在自己的路线中有针对每个控制器的控制器:和。 但是我想不出一种方法来将链接上的“活动”类绑定到控制器。 有什么提示吗? 问题答案: 在看 在控制器上 这样,任务链接将在以’/ tasks’开头的任何url中具有活动类(例如’/ tasks / 1

  • 我设置了一个JPopupMenu,它将显示用户是否右键单击JList中的某个单元格,但现在必须先选择该单元格,才能显示JPopupMenu。我想知道如何在右键单击后选择该单元格,然后像现在一样显示JPopupMenu。当没有选择任何项目并且鼠标不在列表中的任何项目上时,我也会显示一个菜单。 代码:

  • 我在上下文菜单中使用右键单击功能时遇到问题。我的菜单项没有显示,因为我的第二个ngFor=“let row”条件。。。但我需要右键单击选中的行对象,以便从该行传入json值。 现在模式正在弹出,但没有显示菜单项按钮,因此我无法使用click事件。 我做错了什么? view.component.html view.component.ts