如何找出按下了哪个 JButton?

How to figure out which JButton was pressed?

目前正在制作一个显示数据的程序,我想通过点击它来编辑数据。我怎么知道按下了哪个按钮?我看不到价值是什么,因为价值可以是任何东西。这就是我添加它们的方式:

for (int i = 0; i < indexOrder.size(); i++)
{
    colName = new JLabel(colNames.get(indexOrder.get(i))+": ", SwingConstants.RIGHT);
    colName.setFont(new Font("Serif", Font.BOLD, 14));
    rowPane.add(colName);

    colData = new JButton(custData.get(indexOrder.get(i)));
    colData.setHorizontalAlignment(SwingConstants.LEFT);
    colData.setFont(new Font("Serif", Font.PLAIN, 14));
    colData.setBackground(Color.white);
    rowPane.add(colData);
}

我为字符串创建了另一个数组,使用 setName() 将每个按钮名称设置为其索引,并将名称作为字符串放入新数组。现在我可以使用 getName(),将其转换回整数,并通过将其与我的原始 indexOrder 数组进行比较来找出按下了哪个按钮。

您可以通过使用 getSource() 检查 ActionEvent 的来源来做到这一点:

buttonA = new JButton("A");
buttonA.addActionListener(this);

buttonB = new JButton("B");
buttonB.addActionListener(this);

@Override
public void actionPerformed(ActionEvent e) {
    System.out.println(e.getSource().equals(buttonA) ? "A was cliked" : "B was clicked");
}