Я только начал раздумывать над самой Java и Java Swing, и у меня есть некоторые проблемы с пониманием концепции «Action Listener». Люди говорят, что C# и Java очень похожи друг на друга, но это еще одна история, когда вы на самом деле пытаетесь их обойти и сравнивать.Понимание ActionListener
У меня есть следующий автоматически сгенерированный Действие Listener для кнопки:
btnNewButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
lblNylabel.setText("New label text");
}
});
Я понимаю это так:
- Вы называете нестатический метод с помощью объекта «btnNewButton» btnNewButton.addActionListener()
- Метод принимает один экземпляр ActionListener как аргумент
- Авто связанный код запускает экземпляр ActionListener с помощью вызова конструктора «new ActionListener()». Я не понимаю, что я не могу сам инициализировать класс ActionListener, но это возможно в качестве аргумента в вызове метода? метод
- А «actionPerformed» генерируется внутри нового тела экземпляра и используется здесь (Что?)
- Внутри метода «actionPerformed» вы определяете, что делать, когда кнопка нажата - Заставляет прекрасно чувствовать
Возможно ли это сделать более понятным/простым способом, который мог бы помочь мне понять концепцию ActionListener?
Благодарим за полезный ответ. Не могли бы вы привести несколько примеров того, как это сделать без анонимных подклассов в более «простой» форме? (Даже если анонимные подклассы считаются передовой практикой) – Birdman
обновленный ответ. – aioobe