/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Hvordan får man en genvejstast paa en
Fra : Thorbjørn Ravn Ander~


Dato : 03-02-04 14:58

Jeg har en forholdsvis kompliceret swingapplikation hvor der er
genvejstaster på menuerne, og som kan startes med Alt-genvejstast. Det
er fint.

Der er også genvejstaster på diverse JButtons der vises en del af deres
levetid, og jeg vil gerne have at når en given JButton faktisk er synlig
er det dén der får genvejstastinformationen og ikke menusystemet. Lige
nu er det omvendt, og det er lidt bøvlet.

Da jeg ikke har det store Swingkørekort, vil jeg godt lige høre om der
er nogen der har en fiks let måde at gøre dette på? Jeg vil nødigt ud
og rette på de enkelte komponenter.

På forhånd tak,
--
Thorbjoern Ravn Andersen "...plus...Tubular Bells!"


 
 
Ulrik Magnusson (03-02-2004)
Kommentar
Fra : Ulrik Magnusson


Dato : 03-02-04 19:10



Thorbjørn Ravn Andersen wrote:

> Der er også genvejstaster på diverse JButtons der vises en del af deres
> levetid, og jeg vil gerne have at når en given JButton faktisk er synlig
> er det dén der får genvejstastinformationen og ikke menusystemet. Lige
> nu er det omvendt, og det er lidt bøvlet.

Desværre ikke noget svar, men det ser ud til at være
javax.swing.KeyboardManager
der håndterer rækkefølgen (i fireKeyboardAction() ) - og ser ud til at gerne
ville
lade menuer vente til sidst, hmm.. Og sjovt nok kan jeg bytte om på
rækkefølgen
ved at kalde JMenu.setMnemonic() før eller efter JMenuBar.add(menu) i
nedenstående:

public class MenuFrameShortcutBlaBla
{
public static void main( String[] args )
{
javax.swing.JFrame f = new javax.swing.JFrame();
javax.swing.JMenu menu = new javax.swing.JMenu("File");
javax.swing.JMenuBar bar = new javax.swing.JMenuBar();
f.setJMenuBar( bar );
//menu.setMnemonic( java.awt.event.KeyEvent.VK_F ); // menu kommer
først
bar.add( menu );
//menu.setMnemonic( java.awt.event.KeyEvent.VK_F ); // Button kommer
først
menu.addMenuListener
(
new javax.swing.event.MenuListener()
{
public void menuSelected( javax.swing.event.MenuEvent e )
{
System.out.println( e.getSource() );
new Exception().printStackTrace();
}
public void menuCanceled( javax.swing.event.MenuEvent e )
{}
public void menuDeselected( javax.swing.event.MenuEvent e )
{}
}
);
javax.swing.JButton button = new javax.swing.JButton("Farvel");
button.setMnemonic( java.awt.event.KeyEvent.VK_F );
//button.setVisible( false ); // ikke-visible håndterer ikke noget
button.addActionListener
(
new java.awt.event.ActionListener()
{
public void actionPerformed( java.awt.event.ActionEvent e )
{
System.out.println( e.getSource() );
new Exception().printStackTrace();
}
}
);

f.add( button );
f.pack();
f.show();
}
}

Ulrik Magnusson




Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409083
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste