2

JTable 用にカスタマイズされたドラッグ アンド ドロップ動作を記述しようとしていますが、MOUSE_DRAGGEDイベントを受け取ることができません。問題は、ネイティブの DnD 操作がイベントを消費することだと思います (mouseDraggedの javadoc:で説明さ"Due to platform-dependent Drag&Drop implementations, MOUSE_DRAGGED events may not be delivered during a native Drag&Drop operation. "れているように) が、それを無効にするか、回避する方法を探しています。

これは、問題を示す SSCCE です。

public class DragAndDrop {
    @SuppressWarnings("serial")
    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.getContentPane().add(
                new JTable(
                        new Object[][] {{1,2,3},{4,5,6}}, 
                        new Object[] {"one", "two", "three"}) 
                {{

                        addMouseListener(new MouseAdapter() {

                            @Override
                            public void mouseDragged(MouseEvent e) {
                                System.out.println("mouseDragged");
                            }

                            @Override
                            public void mousePressed(MouseEvent e) {
                                System.out.println("mousePressed");
                            }

                            @Override
                            public void mouseReleased(MouseEvent e) {
                                System.out.println("mouseReleased");
                            }

                        });
                }}
        );

        f.setVisible(true);
    }
}
4

1 に答える 1