2011-01-06 99 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);