On 28/10/2013 12:29, Leonid Romanov wrote:
Hello,
I've filed a bug:
https://bugs.openjdk.java.net/browse/JDK-8027374
Hi, Ive think Ive found the issue for me , I created this test case and
it works correctly as you say
import javax.swing.*;
public class TableTest
{
public static void main(String[] args) throws Exception
{
JPopupMenu popup = new JPopupMenu("Popup");
popup.add(new JMenuItem("Copy"));
JTable test = new JTable(5,5);
test.setComponentPopupMenu(popup);
test.setRowSelectionAllowed(true);
test.setColumnSelectionAllowed(true);
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
JFrame frame = new JFrame();
frame.add(test);
frame.pack();
frame.setVisible(true);
}
}
But if you comment out the line
test.setComponentPopupMenu(popup);
so that there is no popup menu then it doesn't work, CntlClick will
change the selection.
Whether this is a bug, or correct behaviour Im not sure ?
But the reason why this is causing an issue for me in my current code is
that Im not using setComponentPopupMenu()instead I'm adding a mouse
handler to the table that then decides whether or not to show a popup
menu so I guess the logic for Jtable must not detect that it has a popup
menu in this case. I've checked and the method was not added to JTable
until Java 1.5 and my code was started before then so hopefully I can
just update my code to use the method and the problem will go away for me.
Paul