如何找出按下了哪个JButton?

时间:2018-08-17 14:50:34

标签: java swing jbutton

当前正在制作一个程序来显示数据,我希望通过单击它来使数据可编辑。我如何确定按下了哪个按钮?我看不到值是什么,因为值可以是任何值。这就是我添加它们的方式:

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);
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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");
}