jtable的鼠标事件监听

今天折腾了这个事件监听了很久,重新定义jtable 继承mouselistener还是监听不到效果,最后发现这段代码很管用,直接在生成的jtable上添加mouseListenner类:

//table加上一个鼠标事件监听器对象

        table.addMouseListener(new java.awt.event.MouseAdapter(){

             publicvoid mouseClicked(MouseEvent e) {//仅当鼠标单击时响应

                //得到选中的行列的索引值

               int r= table.getSelectedRow();

               int c= table.getSelectedColumn();

               //得到选中的单元格的值,表格中都是字符串

               Object value= table.getValueAt(r, c);

            String info=r+""+c+" : "+value.toString();

            javax.swing.JOptionPane.showMessageDialog(null,info);

             }

         }); 在这个内部类中添加了mouseadaper这个类,这是没有注意的。
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果你在监听JTable事件时没有得到任何反应,可能是因为你没有正确地添加事件监听器。 要监听JTable事件,通常有两种方法:使用TableModelListener监听TableModel事件,或使用MouseListener监听鼠标事件。下面是两种方法的示例代码: 使用TableModelListener监听TableModel事件: ```java import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; public class JTableEventListenerExample extends JFrame { private JTable table; private DefaultTableModel model; public JTableEventListenerExample() { setTitle("JTable Event Listener Example"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); // 创建表格模型及表格 model = new DefaultTableModel(); model.addColumn("ID"); model.addColumn("Name"); model.addColumn("Age"); table = new JTable(model); // 添加表格模型的监听器 model.addTableModelListener(new TableModelListener() { @Override public void tableChanged(TableModelEvent e) { if (e.getType() == TableModelEvent.UPDATE) { int row = e.getFirstRow(); int col = e.getColumn(); Object value = model.getValueAt(row, col); System.out.println("Cell (" + row + ", " + col + ") changed to " + value); } } }); // 添加数据到表格模型 model.addRow(new Object[]{"1", "Alice", "18"}); model.addRow(new Object[]{"2", "Bob", "20"}); model.addRow(new Object[]{"3", "Charlie", "22"}); model.addRow(new Object[]{"4", "Dave", "24"}); model.addRow(new Object[]{"5", "Eve", "26"}); // 添加表格到窗口 add(new JScrollPane(table)); setVisible(true); } public static void main(String[] args) { new JTableEventListenerExample(); } } ``` 使用MouseListener监听鼠标事件: ```java import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.event.MouseInputAdapter; import java.awt.event.MouseEvent; public class JTableMouseListenerExample extends JFrame { private JTable table; public JTableMouseListenerExample() { setTitle("JTable Mouse Listener Example"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); // 创建表格并添加鼠标监听table = new JTable(new Object[][]{ {"1", "Alice", "18"}, {"2", "Bob", "20"}, {"3", "Charlie", "22"}, {"4", "Dave", "24"}, {"5", "Eve", "26"} }, new Object[]{"ID", "Name", "Age"}); table.addMouseListener(new MouseInputAdapter() { @Override public void mouseClicked(MouseEvent e) { int row = table.rowAtPoint(e.getPoint()); int col = table.columnAtPoint(e.getPoint()); Object value = table.getValueAt(row, col); System.out.println("Cell (" + row + ", " + col + ") clicked: " + value); } }); // 添加表格到窗口 add(new JScrollPane(table)); setVisible(true); } public static void main(String[] args) { new JTableMouseListenerExample(); } } ``` 如果你仍然无法监听JTable事件,请检查你的代码是否正确地添加了事件监听器,并且监听器的回调方法是否正确实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值