[ bancika @ 03.01.2008. 20:36 ] @
Pozdrav svima,
Imam aplikaciju gde je JFrame glavni prozor i JDialog pomocni koji je sve vreme otvoren. U glavnom prozoru imam meni gde su odredjenim opcijama dodeljene precice na tastaturi. Problem je sto mi te precice ne rade kada je dialog u fokusu. Da li je moguce nekako napraviti da dialog prosledi poruku do frame-a pa ili nesto slicno?
Tnx,
Bane
[ GxRxN @ 03.01.2008. 22:21 ] @
Prosledjivanje tastaturnih dogadjaja na (ne)delu:
Code:

        JFrame j;
        ...
        KeyboardFocusManager.getCurrentKeyboardFocusManager().
                addKeyEventDispatcher(new KeyEventDispatcher() {
            public boolean dispatchKeyEvent(KeyEvent e) {
                e.setSource(j);
                j.processEvent(e);
                return false;
            }
        });
[ bancika @ 03.01.2008. 22:39 ] @
hm..processEvent je protected metod, ne mogu da ga pozovem spolja.
[ GxRxN @ 03.01.2008. 22:56 ] @
U pravu si, nisam primetio. Taj problem mozes da zaobidjes kreiranjem public metode u izvedenoj JFrame klasi koja ce sluziti da pozove processEvent...

Svestan sam da je to hack, ali ne znam kako drugacije. Ukoliko neko zna, neka napise, i mene bi zanimalo.

[ bancika @ 03.01.2008. 22:59 ] @
Ako nista drugo, pokusacu i to, nije strasno. Mislis da ce raditi sa precicama u menu bar-u?
Tnx
[ GxRxN @ 03.01.2008. 23:06 ] @
Ne znam na koje precice mislis. Ima ih vise tipova.

Ukoliko mislis na foru sa
Code:

    jMenuItem1.registerKeyboardAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {

            }
        }, KeyStroke.getKeyStroke("F2"), jMenuItem1.WHEN_IN_FOCUSED_WINDOW);

hoce. A za ostalo ne mogu da tvrdim, jer nisam koristio (mnemonics, accelerators...).
[ bancika @ 10.01.2008. 21:49 ] @
proradilo je, hvala na pomoci!
Btw, meni je radjen sa accelerator-ima, tako da znas da radi i za njih.