2016-12-23 2 views
0

Я изучаю java и, несмотря на немного поиска в Google и чтения различных потоков здесь, я все еще не совсем понятен в обработке событий. См. Ниже и извинения, если это кажется очевидным, но я самоучкой и поэтому буду признателен, если вы не будете отмечены этим знаком - вы тоже были учениками!addActionListener метод в Java

Рассмотрим следующий код:

JMenuItem openItem = new JMenuItem("Open"); 
openItem.addActionListener(this); 
fileMenu.add(openItem); 

В выше, я создаю пункт меню и передавая объект текущего класса я пишу в качестве параметра, представленного «это». Затем это запускает интерфейс «Action Listener», который я реализовал в своем классе, поэтому это в свою очередь отключает метод actionPerformed с параметром события типа ActionEvent, который содержит сведения о произошедшем событии. Мои вопросы:

Я не могу найти метод addActionListener в классе JMenuItem, где это? и вызывает ли этот метод интерфейс ActionListener, который приводит к методу actionPerformed?

Большое спасибо!

+0

'JMenuItem' наследует от' AbstractButton' и должен иметь 'addActionListener'. См. [Здесь] (https://docs.oracle.ком/JavaSE/7/документы/апи/javax/качели/JMenuItem.html). Получаете ли вы какое-либо сообщение об ошибке? Если нет, можете ли вы предоставить свой код? – oschlueter

ответ

1

Я не могу найти метод addActionListener в классе JMenuItem, где это?

Когда вы говорите, что не можете найти его, я полагаю, вы должны иметь в виду, что вы не можете найти его в the class's API docs. Если вы посмотрите немного дальше в документах, вы найдете его в списке методов, унаследованных от суперкласса этого класса, javax.swing.AbstractButton. Метод документирован там, хотя вы обнаружите, что конкретный документ не очень хорошо освещает.

и этот метод вызывает интерфейс ActionListener, который приводит к методу actionPerformed?

Не напрямую, нет. Он записывает ссылку на аргумент (экземпляр вашего класса в этом случае), так что метод actionPerformed() этого объекта может быть вызван позже, когда выбран пункт меню.

В целом, если вы пытаетесь написать графический интерфейс с Swing, тогда вы, вероятно, должны принять the Swing trail in the Java Tutorial. У этого есть много информации об этих и подобных вопросах, которые вы, вероятно, будете иметь.

0

Я не могу найти метод addActionListener в классе JMenuItem, где это?

Вы наблюдения одной из главных особенностей ООП: наследование

JMenuItem наследует addActionListener метод от AbstractButton Как вы можете увидеть в документации общественного API: https://docs.oracle.com/javase/8/docs/api/javax/swing/JMenuItem.html

и делает это метод вызывает интерфейс ActionListener, который приводит к методу actionPerformed?

Да, так оно и есть.

+0

Хм. Я был бы очень удивлен, если какой-либо метод 'addActionListener()' компонента Swing вызвал метод 'actionPerformed()' его аргумента. –

+0

@JohnBollinger Технически вы правы, но в мыслях TOs мой ответ может быть достаточно хорошим ... –

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

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