将ActionListener添加到JTable的列标题

Par*_*rag 5 java swing jtable actionlistener jtableheader

是否可以添加ActionListener到列标题JTable.

这是我的桌子我的桌子图片

现在,我想的添加ActionListener到列标题(例如WQE,SDM)我想是能够显示在另一个窗口中列描述.

Ada*_*dam 16

请参阅下面的完整工作示例

  • 将MouseListener添加到列标题中
  • 使用table.columnAtPoint()来找出单击了哪个列标题

码:

// example table with 2 cols
JFrame frame = new JFrame();
final JTable table = new JTable(new DefaultTableModel(new String[] {
        "foo", "bar" }, 2));
frame.getContentPane().setLayout(
        new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
frame.getContentPane().add(table.getTableHeader());
frame.getContentPane().add(table);
frame.pack();
frame.setVisible(true);

// listener
table.getTableHeader().addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {
        int col = table.columnAtPoint(e.getPoint());
        String name = table.getColumnName(col);
        System.out.println("Column index selected " + col + " " + name);
    }
});
Run Code Online (Sandbox Code Playgroud)