На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Нажатие пункта JMenu. Обработка события.
    Подскажите, как по нажатию пункта меню "New game" вызвать метод из класса TestPanel?
    Пытаюсь через ActionListener, но ничего не происходит.
    Суть в том, что по нажатию пункта меню надо будет менять содержимое(кнопки, формы) JPanel и объектов класса TestPanel.

    ExpandedWrap disabled
      import java.awt.*;
      import java.awt.event.*;
      import javax.swing.*;
      import javax.swing.JMenuBar;
       
      public class NewJApplet extends JApplet {
          public void init() {
              final JFrame frame = new JFrame();
              tp=new TestPanel();
              frame.setSize(210, 272);
              frame.add(new TestPanel());
       
              JMenuBar menuBar = new JMenuBar();
              JMenu menuFile = new JMenu("File");
              JMenuItem item1 = new JMenuItem("New game");
       
              item1.addActionListener(new ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                      tp.newGame();
                  }
              });
              menuFile.add(item1);
              
              menuBar.add(menuFile);
              frame.setJMenuBar(menuBar);
              
       
              JButton calcButton = new JButton("Start");
              add(calcButton);
       
              calcButton.addActionListener(new ActionListener() {
                  public void actionPerformed(ActionEvent event) {
                      frame.setVisible(!frame.isVisible());
                  }
              });
          }
          TestPanel tp;
      }
       
      class TestPanel extends JPanel {
       
          public TestPanel() {
              display = new JButton("_____");
              add(display, BorderLayout.NORTH);
          }
          public void newGame(){
              display.setText("NEW");
          }
          JButton display;
      }
      Судя по приведённому куску кода - проблема не в прослушивании нажатия на пункт меню - оно сделано корректно.
      Хотя и в остальной части не вижу проблем, если честно...
        Я выложил полный код. При желании можно скомпилировать.
        прога запускается и работает без ошибок, но по нажатию на пункт меню ничего не происходит.
          Извините. Нашел свой косяк... Было прописано: frame.add(new TestPanel()); а не созданный ранее объект.
            Логи используйте и такие ошибки быстро будут выявляться...
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0193 ]   [ 15 queries used ]   [ Generated: 16.04.24, 04:47 GMT ]