gpt4 book ai didi

java - 如何通过双击删除行?

转载 作者:行者123 更新时间:2023-12-02 01:09:18 25 4
gpt4 key购买 nike

我是java新手,所以我的知识非常有限。如果我忽略了一些相当明显的解决方案,我现在已经想原谅了。

我在尝试在程序中创建一个函数时遇到问题,以便用户可以通过双击一行来删除该行(从 JTable 中)。我尝试使用此代码:

public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
JTable target = (JTable)e.getSource();
int deletedRow = target.getSelectedRow();
myTableModel.removeRow(deletedRow);

myTableModel.fireTableDataChanged();
}
}

myTableModel 扩展自 AbstractTableModel。我希望你们中的一些人能够帮助我。

最佳答案

myTableModel extends from AbstractTableModel.

我不知道这意味着什么。我认为这意味着您正在使用 DefaultTableModel,因为它实现了 removeRow(...) 方法。

无需调用 fireTableDateChanged() 方法。 DefaultTableModel 的removeRow() 方法将为您完成此操作。 TableModel 负责调用这些方法,而不是您的自定义代码。

你的方法正在执行吗?默认情况下,双击会调用您双击的单元格的编辑器。因此,您需要重写表的 isCellEditable(...) 方法以返回 false。然后,将在表格上双击,并且应调用您的监听器代码。

此外,您还可以在事件代码中访问该表,因此您应该从表中获取模型,以确保您访问的是正确的模型:

DefaultTableModel model = (DefaultTableModel)table.getModel();

如果您需要更多帮助(以及将来发布问题时),请发布您的 SSCCE因为我们无法根据几行代码猜测您在做什么。

关于java - 如何通过双击删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com