Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 25.09.2012, 00:08   #1
__123
Пользователь
 
Аватар для __123
 
Регистрация: 15.09.2011
Сообщений: 36
Вопрос 1 обработчик события для нескольких объектов

Есть массив кнопок(Button) buttonsArr;

Код:
MyMouseListen ml = new MyMouseListen();
for (int i=0; i!=15; i++) 
buttonsArr[i].addMouseListener(ml);
Как идентифицировать, какая кнопка была нажата, не хотелось бы создавать 15 обработчиков?

Так не выходит:

Код:
class MyMouseListen implements MouseListener {
public void mouseClicked(MouseEvent e) {
Object b = e.getSource();
int butIndex = 0, i;

for (i=0; i!=15; i++){
  if (b.equals(buttonsArr[i])) butIndex=i;break;}

}
public void mouseExited(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
}
Нет ли в Java чего-нибудь такого, вроде дельфийского "(Object as TButton).Caption"?
__123 вне форума   Ответить с цитированием
Старый 25.09.2012, 00:24   #2
__123
Пользователь
 
Аватар для __123
 
Регистрация: 15.09.2011
Сообщений: 36
По умолчанию

Лол, а если это
Код:
for (i=0; i!=15; i++){
  if (b.equals(buttonsArr[i])) butIndex=i;break;}
заменить на это
Код:
if (b.equals(buttonsArr[0])) butIndex=0;
if (b.equals(buttonsArr[1])) butIndex=1;
if (b.equals(buttonsArr[2])) butIndex=2;
if (b.equals(buttonsArr[3])) butIndex=3;
if (b.equals(buttonsArr[4])) butIndex=4;
if (b.equals(buttonsArr[5])) butIndex=5;
if (b.equals(buttonsArr[6])) butIndex=6;
if (b.equals(buttonsArr[7])) butIndex=7;
if (b.equals(buttonsArr[8])) butIndex=8;
if (b.equals(buttonsArr[9])) butIndex=9;
if (b.equals(buttonsArr[10])) butIndex=10;
if (b.equals(buttonsArr[11])) butIndex=11;
if (b.equals(buttonsArr[12])) butIndex=12;
if (b.equals(buttonsArr[13])) butIndex=13;
if (b.equals(buttonsArr[14])) butIndex=14;
То выходит. Странно. Че за фигня?
__123 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События для динамических объектов fezilk25 Общие вопросы Delphi 3 05.10.2011 18:13
обработчик события onClose для формы созданной в Run-Time tonatas Общие вопросы Delphi 3 13.08.2010 21:46
События для объектов, добавленных скриптом L_M JavaScript, Ajax 4 19.07.2010 14:23
Обработчик события для смещения указателя мыши по окну программы... vedro-compota Мультимедиа в Delphi 8 15.06.2010 06:08
Общий обработчик для нескольких объектов Strombald Помощь студентам 10 23.12.2009 23:57


01:40.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.