在整个JTable组件上右键单击MouseListener

Mik*_*ski 5 java swing jtable jpopupmenu mouselistener

我正在使用Netbeans,我设计了一个带JTable的窗口,并在JTable组件上添加了MouseEvent监听器,并添加了以下代码:

private void productsTableMousePressed(java.awt.event.MouseEvent evt) {
    if(evt.isPopupTrigger()) {
        tablePopupMenu.setLocation(evt.getXOnScreen(), evt.getYOnScreen());
        tablePopupMenu.setVisible(true);
        System.out.println("Fired!");
    }
}

private void productsTableMouseReleased(java.awt.event.MouseEvent evt) {
    if(evt.isPopupTrigger()) {
        tablePopupMenu.setLocation(evt.getXOnScreen(), evt.getYOnScreen());
        tablePopupMenu.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它只有在我点击一些细胞时才有效.我想让它在整个JTable领域工作.怎么样?

jac*_*bit 3

假设您的表格位于 JScrollPane 内,它可能不会覆盖整个视口。为了确保覆盖整个视口区域,请呼叫setFillsViewportHeight(true)您的桌子。