Java Swing JTable;右键单击菜单(如何使其“选择”并突出显示该行) [英] Java Swing JTable; Right Click Menu (How do I get it to "select" aka highlight the row)

查看:965
本文介绍了Java Swing JTable;右键单击菜单(如何使其“选择”并突出显示该行)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Short: I need a "right-click event" to highlight the cell row.

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

I am using a JTable inside a ScrollPane in Java Swing (Netbeans Matisse). I have a MouseClicked event listener on the JTable that does the following:

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

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

The problem is... whenever I execute a right click on the JTable, the row isn't highlighted (I set the selection to rows only btw). I have looked for several setSelected() functions but could not find a suitable one. By default, left clicking automatically highlights the row. How do I set it up for right clicks?

推荐答案

这样:

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

......

这篇关于Java Swing JTable;右键单击菜单(如何使其“选择”并突出显示该行)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆