Toon posts:

[JAVA] Mnemonics werken pas na 2e keer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik ben bezig met het schrijven van een applicatie. Ik maar daarin gebruik van een menubar. Nu heb ik het volgende stukje code:

code:
1
2
3
4
5
 //Aanmaken van de menuItems
 JMenuItem beginItem = new JMenuItem( "Beginscherm" );
 bestandMenu.add(beginItem);
 bestandMenu.setMnemonic(KeyEvent.VK_B);
 beginItem.addActionListener(menuController);


code:
1
2
3
4
5
6
7
8
9
10
//deel MenuController
public void actionPerformed(ActionEvent e)
{
    command = e.getActionCommand();
                
    if(command.equals("Beginscherm"))
          {
                   scherm.showScherm("beginScherm");
          }
}


Als ik nu mijn applicatie opstart, dan werkt de sneltoets: ALT-B prima. Maar wanneer ik naar een ander scherm ga, moet ik eerst op een willekeurige knop klikken, voordat ook in dat scherm ALT-B werkt???

Ik maak gebruik van een cardLayout, om van scherm te wisselen.

Ik heb dit overigens ook met sneltoetsen voor JButtons. De sneltoetsen werken pas nadat ik op een willekeurige knop geklikt heb.

Iemand een oplossing hiervoor? :?

tnx alvast

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
Heeft dat scherm dan wel de focus ?

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 29 juni 2004 @ 15:24:
Heeft dat scherm dan wel de focus ?
ik heb al wel iets gelezen over focus, maar begrijp dat nog niet echt, ik gebruik het nu (nog) niet......

ik zie ook (nog) niet in wat het ermee te maken heeft....

[ Voor 12% gewijzigd door Verwijderd op 29-06-2004 15:42 ]


  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 23-05 16:37

voodooless

Sound is no voodoo!

Verwijderd schreef op 29 juni 2004 @ 15:26:
[...]


ik heb al wel iets gelezen over focus, maar begrijp dat nog niet echt, ik gebruik het nu (nog) niet......

ik zie ook (nog) niet in wat het ermee te maken heeft....
Het KeyEvent werkt waarschijnlijk alleen als het scherm focus heeft. Probeer eens het schem dat je opent na het openen handmatig focus te geven (of juist niet).

Do diamonds shine on the dark side of the moon :?


Verwijderd

Topicstarter
Ik heb ook een (simpel) voorbeeld van Sun zonder focus:
http://java.sun.com/docs/...ple-1dot4/ButtonDemo.java

dat werkt prima, dus is het dan echt nodig een focus?

ik zal focus evengoed gaan proberen in mijn appie.....

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 20:33
Meestal helpt het wanneer je met de muis op het desbetreffende stuk panel klikt. Er bestaat wel een methode requestFocus(), maar zoals de naam al doet vermoeden is er geen zekerheid dat je die dan ook per direct krijgt. Tis maar net hoe het de vm uitkomt, dit focus-gedrag in java is dan ook zeer iritant als je even snel een applicatie in elkaar wilt zetten.

Verwijderd

Topicstarter
dat is behoorlijk k*t idd :( hebt t nog niet echt werkende........

Verwijderd

Topicstarter
heb het voor elkaar, had inderdaad met de focus te maken:

Ik voegde aan mijn container een JPanel toe. Ik weet dan niet waar de focus staat, en dat wordt dan dus verholpen met een muisklik in de betreffende panel zoals Sybr_E-N al zei.

Door de volgende inner-klasse te gebruiken:

code:
1
2
3
4
5
6
7
public class FocusPanel extends JPanel
    {
        public boolean isFocusCycleRoot()
        {
            return true;
        }
    }


en dit panel aan je container toe te voegen, is het huidige panel altijd de focus, en werken de sneltoetsen direct.

Ik heb dit overigens uit Java2 bible: ISBN 90-395-1605-7
Pagina: 1