2013-11-17 1 views
0

Я создаю пользовательский интерфейс для игры, которую я должен выполнять как классный проект, и, разумеется, у меня нет опыта с Swing.Как я могу создать действия для переменного количества кнопок?

Я узнал о actionevents и whatnot для простых нажатий кнопок, но в этих случаях я знал, сколько кнопок будет на экране. Здесь мне нужно создать доску с произвольным количеством фрагментов, которые будут представлены в виде кнопок в Swing. Мне нужно нажать кнопку и «переместить» моего персонажа с одной плитки на другую, поэтому мне нужно вызвать метод на одном элементе плитки, чтобы удалить игрока из этой плитки, а затем добавить его в другую плиту.

Итак, мой вопрос заключается в том, что количество кнопок генерируется во время выполнения (и сохраняется в массиве 2d), как я могу сделать actionlistener, способный различать каждую уникальную кнопку?

ответ

1

Установите все ваши кнопки в тот же обработчик:

ActionListener a = new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent evt) { 
     if (evt.getSource() == buttons[0][0]) { 

     } 
     // etc 
     // common handling 
    } 
}; 

for (int i = 0; i < height; ++i) 
    for (int j = 0; j < width; ++j) 
    buttons[i][j].addActionListener(a); 

 Смежные вопросы

  • Нет связанных вопросов^_^