我正在尝试动态生成按钮并添加一个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;需要被宣布为最终
我该怎么办?感谢
答案 0 :(得分:3)
您可以使用ActionEvents getSource方法。你会这样做:
JButton eventSourc = (JButton)e.getSource();
在你的actionPerformed方法中。