Swing如何识别哪个jbutton用户正在点击

时间:2017-05-20 16:28:53

标签: java jbutton

我在java中创建一个座位研究系统.....我创建了一个jbuttons数组。有什么方法我可以识别单击了哪个按钮,或者我可以在单击时获得按钮的索引。

import {Directive, ElementRef, Input, Output, EventEmitter, OnChanges} from "@angular/core";

@Directive({
selector: '[contenteditableModel]',
host: {
    '(blur)': 'onEdit()',
    '(keyup)': 'onEdit()'
}
})

export class ContentEditableDirective implements OnChanges {
@Input('contenteditableModel') model: any;
@Output('contenteditableModelChange') update = new EventEmitter();

constructor(
    private elementRef: ElementRef
) {
    console.log('ContentEditableDirective.constructor');
}

ngOnChanges(changes) {
    console.log('ContentEditableDirective.ngOnChanges');
    console.log(changes);
    if (changes.model.isFirstChange())
        this.refreshView();
}

onEdit() {
    console.log('ContentEditableDirective.onEdit');
    var value = this.elementRef.nativeElement.innerText
    this.update.emit(value)
}

private refreshView() {
    console.log('ContentEditableDirective.refreshView');
    this.elementRef.nativeElement.textContent = this.model
}
}

1 个答案:

答案 0 :(得分:2)

有多种方法可以区分触发ActionEvent的按钮:

  1. 设置/获取每个按钮的动作命令(例如,如果(e.getActionCommand()。等于("按钮名称"))
  2. 使用==比较实例(例如if(e.getSource()== buttray [0]))
  3. 获取JButton的文本(例如if(e.getSource()。getText()。equals(" Button Name"))
  4. 设置/获取JButton的名称(例如if(e.getSource()。getName()。equals(" Button Name"))
  5. 在你的情况下你有一个名字..所以#4应该在你的buttton事件中起作用

    btn1[i].addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        String bName = e.getSource().getText()
      }
    });