Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.86.184] |
|
Сообщ.
#1
,
|
|
|
Подскажите, как по нажатию пункта меню "New game" вызвать метод из класса TestPanel?
Пытаюсь через ActionListener, но ничего не происходит. Суть в том, что по нажатию пункта меню надо будет менять содержимое(кнопки, формы) JPanel и объектов класса TestPanel. 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; } |
Сообщ.
#2
,
|
|
|
Судя по приведённому куску кода - проблема не в прослушивании нажатия на пункт меню - оно сделано корректно.
Хотя и в остальной части не вижу проблем, если честно... |
Сообщ.
#3
,
|
|
|
Я выложил полный код. При желании можно скомпилировать.
прога запускается и работает без ошибок, но по нажатию на пункт меню ничего не происходит. |
Сообщ.
#4
,
|
|
|
Извините. Нашел свой косяк... Было прописано: frame.add(new TestPanel()); а не созданный ранее объект.
|
Сообщ.
#5
,
|
|
|
Логи используйте и такие ошибки быстро будут выявляться...
|