Java JButton addActionListener并获取自己的名称

时间:2013-03-05 22:06:45

标签: java swing jbutton actionlistener

我正在尝试动态生成按钮并添加一个ActionListener,它将按钮的名称放入TextArea中。我的代码就像:

    int numnotas = model.getColumnCount();
    JButton[] notasbot = new JButton[numnotas];

    BotonesNotas.setLayout(new GridLayout());
    for( int k = 1; k < numnotas; k++){
        variables.add(model.getColumnName(k));
        notasbot[k-1]=new JButton(variables.get(k-1));
        notasbot[k-1].setSize(new Dimension(80,23));
        notasbot[k-1].setLocation(80, 350);
        notasbot[k-1].setMargin(new Insets(2,14,2,14));
        notasbot[k-1].setAlignmentX(0);
        notasbot[k-1].setAlignmentY(1);
        notasbot[k-1].setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        notasbot[k-1].setVerticalAlignment(javax.swing.SwingConstants.CENTER);
        notasbot[k-1].addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
                entrada.insert(????,entrada.getSelectionEnd());
            }
        });
        notasbot[k-1].setLayout(null);
        BotonesNotas.add(notasbot[k-1]);
        notasbot[k-1].setVisible(true);
    }

我可以设置什么?获取按钮的名称。如果我把类似“notasbot [k-1] .getName()”的东西给它一个错误:从内部类中访问局部变量k;需要被宣布为最终

我该怎么办?感谢

1 个答案:

答案 0 :(得分:3)

您可以使用ActionEvents getSource方法。你会这样做:

JButton eventSourc = (JButton)e.getSource();

在你的actionPerformed方法中。