MenuButton nie działa ???
Napisane: środa, 22 grudnia 2010, 13:17
Witam Panie Arkadiuszu przerabiam Pana kurs i natrafiłem na problem zaznaczam że jestem bardzo początkującym "programistą" Otóż chodzi o to że nie działa jeden projekt z lekcji a mianowicie ten przypominający menu.
Problem polega na tym że jak lecę strzałka w dół to jeżeli skupienie jest na drugim buttonie i nacisnę strzałkę na 3 to wywala błąd . Tak wygląda kod:
A tak wygląda błąd:
Problem polega na tym że jak lecę strzałka w dół to jeżeli skupienie jest na drugim buttonie i nacisnę strzałkę na 3 to wywala błąd . Tak wygląda kod:
Code: Zaznacz cały
private void keyPressedHandler(KeyEvent e)
{
int dlMenu = panelMenu.getComponentCount();
if (i==0) i = 10*dlMenu;
if(e.getKeyCode() == KeyEvent.VK_DOWN)
{
panelMenu.getComponent(++i&dlMenu).requestFocus();
System.out.println(i);
}
else if(e.getKeyCode() == KeyEvent.VK_UP)
{
panelMenu.getComponent(--i&dlMenu).requestFocus();
System.out.println(i);
}
else if(e.getKeyCode() == KeyEvent.VK_ENTER)
{
((MenuButton)e.getSource()).doClick();
}
}
W czym jest problem??Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: No such child: 3
at java.awt.Container.getComponent(Container.java:294)
at ppp.Main$MenuButton$1.keyPressedHandler(Main.java:62)
at ppp.Main$MenuButton$1.keyPressed(Main.java:53)
at java.awt.Component.processKeyEvent(Component.java:6225)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2801)
at java.awt.Component.processEvent(Component.java:6044)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4502)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)