java - 如何使多个 jtable 共享一个事件处理程序方法

标签 java swing jtable

我是 Java 新手,所以请温柔一点,哈哈。我的问题是这样的...我习惯了 C#,其中制作多个项目并拥有所有...比如说...鼠标单击事件,转到一种方法来找出哪个控件触发了它等等。问题是,我不知道如何在 Java 中做到这一点。我有几个 JTable,需要一种方法来处理 tablemodellistener 事件。

import javax.swing.event.*;
import javax.swing.table.TableModel;

public class SimpleTableDemo ... implements TableModelListener {
    ...
    public SimpleTableDemo() {
        ...
        table.getModel().addTableModelListener(this);
        ...
    }

    public void tableChanged(TableModelEvent e) {
        int row = e.getFirstRow();
        int column = e.getColumn();
        TableModel model = (TableModel)e.getSource();
        String columnName = model.getColumnName(column);
        Object data = model.getValueAt(row, column);

        ...// Do something with the data...
    }
    ...
}

所以我尝试更改“table.getModel().addTableModelListener(this);”

至:

table.getModel().addTableModelListener([MyMethod of type TableModelListener]);

但它不会编译。请提供一个完整的示例或非常好的提示。谢谢!

编辑:

我从这里得到了代码:http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#modelchange

最佳答案

在此example ,单个 TableModel 有多个监听器,包括 JTable 本身和相邻的 JList。每个JComponent 都包含一个EventListenerList,已检查herehere ,其中包含该模型的任意数量的事件监听器。

关于java - 如何使多个 jtable 共享一个事件处理程序方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358188/

相关文章:

JAVA JTable 数据模型列名错误

java - JPanel 上没有出现或移动框..Java

java - 如何根据鼠标位置打开JDialog?

java - 删除 JTable 位的所有行,其占用空间仍然存在

java - 在 glassfish 中更改 JSP 编译器版本

java - Swing: "thin"标准组件充当容器?

java - 如何在行高较大的 JTable 中控制 ComboBox Editor 的高度?

java - derby db 的错误代码列表在哪里?

java - MailChimp API java 集成

java - 返回 map 值的 Freemarker 函数