Hvordan du flytter mellom rammer i Java

Hvordan du flytter mellom rammer i Java


GUI-komponenter i Java bruke fokus hendelser og fokusere lytterne til å avgjøre når vinduene er i dag den "aktive" vinduet, som avgjør om den håndterer inndata fra tastaturet. For å få dette fokuset, må et vindu ringe enten arvet metoden "requestFocus ()" eller "toFront ()". Den tidligere gir vinduet tastatur input, og sistnevnte setter vinduet på toppen av andre vinduer. Java er to "ramme" klasser, ramme og JFrame, er begge komponenter som kan be om fokus for seg selv eller passere fokusere på en annen ramme.

Bruksanvisning

1 Kaller "requestFocus ()" eller "toFront ()" metoden når du vil ha en ramme å trekke fokus, som i "myFrame.requestFocus ();"

2 Fest en FocusListener til rammen. Hvis du har en forekomst av JFrame kalt "myFrame," dette er gjort i begynnelsen med følgende kode: "myFrame.addFocusListener (ny FocusListener () {void focusGained (FocusEvent e) {}});"

3 Definer focusGained metode, slik at hvis andre tiltak er å bli tatt når fokus endres, det er gjort.

4 Gjenta trinn 1 til 3 med andre ramme tilfeller.

Hint

  • Hvis du bytter mellom komponentene i et enkelt vindu, bruker metoden "requestFocusInWindow ()" i stedet for "requestFocus ()"
  • Ikke alle forespørsler om fokus kan gis umiddelbart. Bruk focusGained å sette et flagg for å fortelle programmet når rammen faktisk får fokus. Som Swing komponenter er ikke thread-safe, bør dette flagget bli erklært som en flyktig datatype.