Как узнать какая кнопка нажата?(java)

409
26 февраля 2017, 08:09

Есть форма, на этой форме есть кнопки. Их может быть и 100 и 200 и т.д. Как узнать какая кнопка была нажата?

Answer 1

Если вы создаёте программу с множеством кнопок, наверняка каждая кнопка для чего-то предназначена, и при нажатии на неё должно происходить действие. Тогда для каждой кнопки нужно создать слушателя:

myButton.addActionListener(e -> {
// что будет, если нажать на кнопку
});

Или, можно добавить слушателей только для тех кнопок, для которых вы хотите. Если нажать на кнопку, у которой нет слушателя, не произойдет ничего.

Если у всех ваших кнопок и так есть слушатели и при нажатии на них уже выполняются какие-то действия, но при нажатии на какие-то определенные кнопки из множества вам нужны особенные действия, то их тоже можно добавить к слушателям этих кнопок. Например, закрытие программы.

Если вы добавляете кнопки через массив, например, так:

JPanel myPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
for (int i = 0; i < 100; i++){
   myPanel.add(new JButton("Button " + i));
}

Тогда возникает вопрос, зачем вы поступаете именно так? Можете через цикл добавить кнопки, при нажатии на которые не произойдет ничего (тогда зачем они?), а остальные создать отдельно и добавить для них слушателей.

READ ALSO
Замена данных по шаблону Java RegExp

Замена данных по шаблону Java RegExp

Подскажите пожалуйста как сделать замену подстроки в строк путем регулярных выражений? В тексте (html) есть так называемые переменные по которым...

339
Как преобразовать XML to Java?

Как преобразовать XML to Java?

На сервер приходит xml-файл:

242
Подсказки в окне программы

Подсказки в окне программы

Мне нужно, чтобы у моей программы появилась кнопка "вопрос" желательно в следующем месте: (обозначено красным) , чтобы, если нажать на неё, потом,...

219
Возможно ли в jbox2d сделать вид сверху?

Возможно ли в jbox2d сделать вид сверху?

Изучаю физический движок jbox2dВ модуле jbox2d-testbed самый первый тест (Car) - это двигающийся автомобиль

266