2017-03-26 18 views
-2

ユーザーが行をダブルクリックしたときに、選択した行のインデックスを取得したいとします。私はテーブルの行をダブルクリックにもかかわらずマウスクリックJTableのイベント

tab.addMouseListener(new MouseAdapter() { 
    public void mouseClicked(MouseEvent e) { 
     if (e.getClickCount() == 2) { 

      int selectedRow = tab.getSelectedRow(); 

      try { 
       String file = rows[selectedRow][2]; 
       String path = "C:\\Users\\raj kumar\\Gallery\\" + file; 
       JLabel fileLable = new JLabel(); 
       fileLable.setBounds(500, 600, 300, 300); 
       fileLable.setIcon(new ImageIcon(path)); 
       pan.add(fileLable); 
      } catch (Exception e1) { 
       e1.printStackTrace(); 
      } 
     } 
    } 
}); 

しかしtab.getSelectedRow()戻り-1

は、ここに私のコードです。

答えて

0

マウスがどの行を指しているかを知りたいが、どの行が選択されているかを知りたい。簡単な解決策は、代わりに

int selectedRow = tab.getSelectedRow(); 

であるので、あなたは指名手配の行を取得するために

int row = tab.rowAtPoint(e.getPoint()); 

を使用することができます。 Event eには必要な情報がすべてあります。 e.getPoint()は、カーソルが現在位置している正確なPointを返します。そして、rowAtPoint()は自己説明する必要があります。

これは、重要である場合は、一度に行だけで作業することも確認します。複数の行が選択されている場合、どのようにgetSelectedRow()が動作するのかわかりません。

関連する問題