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