单击一行 Jtable 中的按钮会更改所有 table 条记录中的标签

The button click in one row of Jtable changes labels in all table records

我尝试制作带有按钮、编辑文本字段和其他 Swing 组件的 JPanel 列表,但找不到在 swing 中制作列表视图的示例。我尝试使用 jTable 执行此操作,该 jTable 在单元格中有一列带有 JPanel,但单击按钮后我的标签字段在所有 jPanel 元素中发生变化

这是我根据不同示例制作的代码。此 class 具有渲染和编辑器方法。单击按钮时,我尝试更改标签的文本。但是所有标签(我只想更改一个需要的标签)都更改了它们的文本...可能是我不在那个地方设置了 onMouseListener...

public class RssFeedCell extends AbstractCellEditor implements TableCellEditor, TableCellRenderer {
    JPanel panel;
    JLabel text;
    JButton showButton;
    JLabel label;

    RssFeed feed;

    public RssFeedCell() {
        label = new JLabel();
        text = new JLabel();
        showButton = new JButton("View Articles");
        showButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                label.setText("ed");
            }
        });

        panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panel.add(text);
        panel.add(showButton);
        panel.add(label);
    }

    private void updateData(RssFeed feed, boolean isSelected, JTable table) {
        this.feed = feed;

        text.setText("" + feed.name + "" + feed.url + "Articles " + feed.articles.length + "");

        if (isSelected) {
            panel.setBackground(table.getSelectionBackground());
        } else {
            panel.setBackground(table.getBackground());
        }
    }

    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        RssFeed feed = (RssFeed) value;
        updateData(feed, true, table);
        return panel;
    }

    public Object getCellEditorValue() {
        return null;
    }

    public Component getTableCellRendererComponent(JTable table, Object value,
                                                   boolean isSelected, boolean hasFocus, int row, int column) {
        RssFeed feed = (RssFeed) value;
        updateData(feed, isSelected, table);
        return panel;
    }
}

只有一个label。您需要将细胞状态合并到 TableModel 数据中。