我有一个使用JTable的应用程序并将其选中:
//The line below is setting ptm (AbstractTableModel instance) as the
//parameter for a new JTable instance.
table = new JTable(ptm);
table.setFillsViewportHeight(true);
//This is setting user selection to a single interval.
table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
scroll = new JScrollPane(table);
SINGLE_INTERVAL_SELECTION。但我不想拖动鼠标并选择多行。我怎么能或最好的方法来禁用鼠标拖动行!
我想过实现MouseMotionListener,我认为这是最好的方法。
http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseMotionListener.html
这就是我解决问题的方法。我最终发现他们是一个添加鼠标监听器到jScrollPane的错误。相反,您必须将其添加到面板的视图中。您必须将侦听器添加到JTable的父UI。
scroll.getViewport().getView().addMouseMotionListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
System.out.println("Mouse has been dragged");
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
});