0

「actionlistener」を使用する必要があることはわかっているので、以下のコードは機能するはずですが、機能しません。

if (e.getSource() == "but0") { // but0 is name of button with number "0"
    String aaa = but0.getText();
    field.setText(aaa);
}
4

3 に答える 3

0

作成時に配列にボタンを追加

ArrayList<JButton> buttonA = new ArrayList();
for(int i=0;i<=9;i++) {
 String num_ = String.valueOf(i);
 JButton button = new JButton(num_);
 button.setName(num_);
 buttonA.add(button);
  // do remaining stuff
}

活動中

 public void actionPerformed(ActionEvent e) {
   if(buttonA.contains(e.getSource())) {
            JButton btn = (JButton) e.getSource();
            display.setText(display.getText() + btn.getName());
   } else if() { // operations like +,- etc.,

   }
于 2013-07-15T08:50:42.443 に答える
0

JavaDocs からjava.awt.event.EventObject:

public Object getSource()

イベントが最初に発生したオブジェクト。

String と比較する代わりに、ボタン自体と比較してみてください。

if (e.getSource() == but0) {
    String aaa = but0.getText();
    field.setText(aaa);
}
于 2013-07-15T08:52:43.953 に答える