2011-01-06 10 views
3

クリック可能な列ヘッダーを作成しようとしています(その結果、クリックされたときにメソッドが呼び出されるようになりました)。
画像へのリンク(まだ10の評判がないので)http://img156.imageshack.us/img156/5764/clickablecolumn.png
列見出しは赤い四角形です。
私がこれまで行ってきたことは、James、Benny-G、Rokasのカラムフィールドが押されたときにいつでも応答しています。 コード:JTableのクリック可能な列ヘッダー

public void mouseClicked(MouseEvent e) 
    { 
     System.out.println("Mouse clicked"); 
     TableColumnModel cModel = table.getColumnModel();//cModel - column model 
     int selColumn = cModel.getColumnIndexAtX(e.getX());//gets the selected column by clicked x coordinate 
    } 

答えて

14

あなたはJTableHeaderで表され、テーブルのヘッダーにマウスリスナーを追加したい:

JFrame frame = new JFrame(); 
frame.getContentPane().add(new JScrollPane(new JTable(4, 3) { 
    { 
    getTableHeader().addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent mouseEvent) { 
     int index = convertColumnIndexToModel(columnAtPoint(mouseEvent.getPoint())); 
     if (index >= 0) { 
      System.out.println("Clicked on column " + index); 
     } 
     }; 
    }); 
    } 
})); 

frame.pack(); 
frame.setVisible(true); 
関連する問題