Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Java > Нажатие пункта JMenu. Обработка события. |
Автор: Alegator 26.09.11, 19:35 |
Подскажите, как по нажатию пункта меню "New game" вызвать метод из класса TestPanel? Пытаюсь через ActionListener, но ничего не происходит. Суть в том, что по нажатию пункта меню надо будет менять содержимое(кнопки, формы) JPanel и объектов класса TestPanel. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> 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; } |
Автор: mgarin 26.09.11, 19:38 |
Судя по приведённому куску кода - проблема не в прослушивании нажатия на пункт меню - оно сделано корректно. Хотя и в остальной части не вижу проблем, если честно... |
Автор: Alegator 26.09.11, 19:49 |
Я выложил полный код. При желании можно скомпилировать. прога запускается и работает без ошибок, но по нажатию на пункт меню ничего не происходит. |
Автор: Alegator 26.09.11, 20:54 |
Извините. Нашел свой косяк... Было прописано: frame.add(new TestPanel()); а не созданный ранее объект. |
Автор: arinosov 27.09.11, 08:58 |
Логи используйте и такие ошибки быстро будут выявляться... |