java - 已重置的 JTable 的 ActionListener

标签 java swing user-interface jtable actionlistener

我遇到了根据单选按钮更新的 JTable 的操作监听器的问题。

我创建了一个空白表,然后根据选择的按钮重新更新。 我遇到的唯一问题是操作监听器没有与当前表一起更新。

例如

表A 表B 表 C(只有一个带有 Action 监听器)

如果我点击 A B 就可以了,但是一旦我点击 C 并尝试返回 A 并选择一行,它仍然执行表 C 的操作监听器。有没有办法从 JTable 中删除操作监听器?

代码看起来像这样

JTable table = new JTable();

//Inside buttonActionListener

if (A)
table.setmodel(A);
else if (B)
table.setmodel(B);
else if (C) 
{
table.setmodel(C);
table.addmouselistener(new mouseclick())
}

我可以将 Action 监听器添加到所有表中...这违背了我更新它们的目的...但是有没有办法解决这个问题?

最佳答案

直接使用

public void removeMouseListener(MouseListener l)

但是,如果您需要一直添加和删除监听器,那么事情会很奇怪......也许您最好保留监听器,但编写它,以便它检查某种条件来验证其逻辑是否应该执行。

关于java - 已重置的 JTable 的 ActionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8132900/

相关文章:

java - 保存聚合根而不暴露嵌套实体

java - vi 模式下的 JTextArea

java - 关于 java GUI 和清除 JFrame 以显示新内容?

java - 从 Swing tableModel 中删除空白 propertyColumn

java - 当我写 import java.io.*; 时显示错误

java - 将图像置于面板中间

python - 将动态用户输入插入到 text() 框中

java - JPanel 不会添加 JLabel 文本?

react-native - React Native如何实现圆角的上层背景组件?

线程