gpt4 book ai didi

java - 编辑 JTable 中新添加的行

转载 作者:行者123 更新时间:2023-12-01 13:52:13 29 4
gpt4 key购买 nike

我使用此弹出菜单在 JTable 中添加了一行:

    final JPopupMenu popupMenu = new JPopupMenu();
JMenuItem addItem = new JMenuItem("Add Movie");
JMenuItem deleteItem = new JMenuItem("Delete Movie");

addItem.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("test");
Object frame = null;
JOptionPane.showMessageDialog((Component) frame, "Movie wurde hinzugefügt!");

model.addRow(new Movie("", 0, "", "", null, "DE"));
}
});
deleteItem.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
Object frame = null;
JOptionPane.showMessageDialog((Component) frame, "Movie wurde gelöscht");
}
});

popupMenu.add(addItem);
popupMenu.add(deleteItem);
table.setComponentPopupMenu(popupMenu);

但是,当我尝试编辑该行中的值时,我总是收到一条错误消息。有谁知道为什么吗?

Exception in thread "AWT-EventQueue-3" java.lang.IndexOutOfBoundsException: Invalid range
at javax.swing.DefaultRowSorter.rowsUpdated(DefaultRowSorter.java:896)
at javax.swing.DefaultRowSorter.rowsUpdated(DefaultRowSorter.java:915)
at javax.swing.JTable.notifySorter(JTable.java:4264)
at javax.swing.JTable.sortedTableChanged(JTable.java:4118)
at javax.swing.JTable.tableChanged(JTable.java:4395)
...

你能帮我吗?

最佳答案

您可能没有正确实现 addRow() 方法。

您需要将 Movie 对象添加到电影列表中,然后调用 fireTableRowsInserted(...)。

查看Row Table Model 。 RowTableModel 类将让您了解如何实现 addRow() 方法。

关于java - 编辑 JTable 中新添加的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19881688/

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