You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击JTable时鼠标事件失效,rowClicked方法提示未使用的问题求助

问题分析与解决:JTable点击事件未触发

你遇到的问题很典型——你重写了错误的方法名,导致你的点击逻辑根本不会被执行!

MouseAdapter类里并没有rowClicked这个回调方法,你自定义的这个方法只是一个普通方法,永远不会被鼠标点击事件触发,所以编译器才会提示它“未被使用”。

修正后的代码

把方法名改成MouseAdapter中定义的mouseClicked,这才是处理鼠标点击事件的正确回调方法:

public void fetchRec() {
    xtable.addMouseListener(new MouseAdapter() {
        // 加上@Override注解,编译期就能帮你检查重写是否正确
        @Override
        public void mouseClicked(MouseEvent evt){
            xtable = (JTable) evt.getSource();
            int row = xtable.rowAtPoint(evt.getPoint());
            // 如果你固定要获取ID列,直接指定列索引更靠谱,比如ID在第0列就写int column = 0;
            int column = xtable.columnAtPoint(evt.getPoint());
            // 用toString()比拼接空字符串更优雅
            String s = xtable.getModel().getValueAt(row, column).toString();
            idLabelField.setText(s);
        }
    });
}

额外建议

  1. 务必加上@Override注解:它会在编译阶段帮你校验是否正确重写了父类的方法,避免这种方法名写错的低级错误。
  2. 如果你的需求是点击行就获取该行的ID,而不是用户点击的任意列,直接把column固定为ID所在的列索引(比如int column = 0;)会更符合预期,不用依赖用户点击的位置。

内容的提问来源于stack exchange,提问作者Hassan Chaudhry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 18:18:01