【问题标题】:How to figure out which JButton was pressed?如何确定按下了哪个 JButton?
【发布时间】:2018-08-17 14:50:33
【问题描述】:

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

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

【问题讨论】:

  • 你能展示你处理Event按钮按下的部分吗?

标签: java swing jbutton


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以使用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");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      相关资源
      最近更新 更多