for (int i = 0; i < buttons.length; i++)
{
if ((ae.getSource().equals(buttons))
&& (buttons.getText().equals("+")))
{
this.currentOperation = new OperationsFactory().GetOperation("+");
this.currentOperation.setFirstOperand(Float.parseFloat(this.tf.getText()));
this.firstPart = 0;
this.secondPart = 0;
this.decimal = true;
}
if ((ae.getSource().equals(buttons))
&& (buttons.getText().equals("-")))
{
this.currentOperation = new OperationsFactory().GetOperation("-");
this.currentOperation.setFirstOperand(Float.parseFloat(this.tf.getText()));
this.firstPart = 0;
this.secondPart = 0;
this.decimal = true;
}
...
}
обработка событий массива кнопок
Код:
почему-то когда пишу явно строку в GetOperation - все прекрасно работает, но если пишу так: GetOperation(buttons.getText()) - не работает. не уверена, что вообще правильно обрабатываю нажатие кнопки. ae.getSource() - мне нужно для того, чтобы прога поняла, что я нажала кнопку, а выражение с equals - понять, какая именно нажата кнопка.
А так работает?
Код:
String s = "+"
new OperationsFactory().GetOperation(s);
new OperationsFactory().GetOperation(s);
Код:
String s = buttons.getText();
new OperationsFactory().GetOperation(s);
new OperationsFactory().GetOperation(s);
P.S
насчёт ae.getSource() - мне кажется лучше создавать свой листенер для каждой кнопки.
Цитата: P*t*
Ошибку не вижу.
А так работает?
А так работает?
Код:
String s = "+"
new OperationsFactory().GetOperation(s);
new OperationsFactory().GetOperation(s);
так работает. а почему тогда через buttons.getText().equals("+") не работает?
Пробовал выводить в лог содержимое того, что ты сравниваешь?
так работает. а почему тогда через buttons.getText().equals("+") не работает?[/QUOTE]
Всётаки советую делать новый листенер для каждой кнопки. В таком случае ему не придётся узнавать что на кнопке написано.
P.S Вот ещё может быть такая ошибка - вдруг ты забываешь кнопки в массив класть?
Плюс он позволит легко автоматически привязать действия к нажатиям сочетаний кнопок на клавиатуре и даже повесить все это в меню, то есть обеспечит нормальную централизацию обработки действий пользователя.
http://java.sun.com/docs/books/tutorial/uiswing/misc/action.html
в том плане,что можно каждой кнопке назначить свое действие и даже если массив кнопок формируется динамически, то можно при его формировании использовать фабрику действий (Action).