hvordan du opretter en java -indgang kort

Indlæg af Gunner Poulsen     opdateret: 2011-08-13

Komponenterne i Java Swing biblioteket for at bygge grafiske brugergrænseflader kommer med en standard InputMap , der fungerer ganske godt for enkle former . Dog vil mere avancerede programmer, der har brug for deres eget tastatur genveje og andre brugerdefinerede værktøjer til håndtering af brugerinteraktion kræve nogle ændringer af deres InputMap . Heldigvis , udvikle en brugerdefineret InputMap er ikke en særlig kompliceret ting at udføre . Denne tutorial vil antage, at du bruger Netbeans Java IDE , men det bør stadig arbejde med andre IDE med visse ændringer.

Du skal bruge:
Computer
. Java .
NetBeans IDE .


1 .
Oprettelse af en formular ved hjælp af fanen Design og slippe en enkelt JLabel til formularen . Indtast teksten " space bar er ikke blevet trykket ned. " som tekst til det , og lad navnet på etiketten , som jLabel1 , som bør være standard .
2 .
Opret en ny klasse . Giv denne klasse navnet " SpaceDownAction . " Det bør udvide javax. swing. AbstractAction klassen fra Java biblioteket . Tilføj en privat jLabel variabel med navnet forælder til den klasse, og give det en constructor , der tager en JLabel argument . Endelig skaber et tomrum metode ved navn actionPerformed , der tager en java. awt. event. ActionEvent parameter .
Aktionen vil være temmelig enkelt: når actionPerformed metoden kaldes , vil denne handling ændre teksten i det moderselskab JLabel at sige " Space trykket bar . " Koden følger :
import java. awt. event. ActionEvent ;
import javax. swing. JLabel ;
public class SpaceDownAction udvider javax. swing. AbstractAction {
private JLabel forælder ,
SpaceDownAction ( JLabel forælder ) {
dette . forælder=forælder ;
}
offentlige actionPerformed void ( ActionEvent e ) {
parent. setText ( " Space bar trykket . ");
}
}

3 .
Byg InputMap . Skifte tilbage til din form klasse og tilføje følgende variabler til det .
InputMap iMap=ny InputMap () ;
ActionMap AMAP=ny ActionMap () ;
SpaceDownAction spaceAction ;
Inde i constructoren for formularen , Du bliver nødt til at initialisere spaceAction ved at give den identitet, dets moderselskab jLabel . Du bliver nødt til at associere et tastetryk med en handling navn i InputMap . ( se referencer 2 ) Og endelig skal du til at associere SpaceDownAction med en handling navn i din ActionMap .
Koden til at gøre dette er som følger . Endnu en gang , vil du ønsker at sætte dette i din form 's constructor ( se henvisninger 1) :
spaceAction=nye SpaceDownAction ( jLabel1 )
iMap. put ( KeyStroke. getKeyStroke ( " SPACE " ) , " spaceDown ") ;
aMap. put ( " spaceDown " , spaceAction )
Endelig skal du fortælle jLabel1 at bruge dit tilpassede iMap som sin InputMap og bruge AMAP som sin sædvane ActionMap .
jLabel1. setInputMap ( JComponent. WHEN_FOCUSED , IMAP )
jLabel1. setActionMap ( AMAP ) .
4
Kør og tryk på mellemrumstasten . Etikettens tekst bør ændres straks at informere dig om arrangementet.

gode råd og advarsler


  • Hvis en handling ikke behøver at henvise tilbage til sit moderselskab komponent , men i stedet er en genvej til at opnå noget andet , så er der ikke behov for " forældre " -variable inde i handlingen .


  • Previous:hvordan du installerer Java API Next:hvordan man skaber elementer med javascript klient side



     

    Kommentarer

    Code:
    change