Java - Menú con atajos

 
Vista:

Menú con atajos

Publicado por eltiolopez (14 intervenciones) el 23/10/2008 04:48:39
Buenas.

Estoy haciendo un programa con sus ventanitas y tal, y en cada una tengo una barra de herramientas ("Archivo", "Edición", "Opciones",...) hechas con los tipos JMenu y JMenuItem. Querría saber cómo se pueden hacer atajos a estos menús desde el teclado, es decir, que al pulsar, por ejemplo, Ctrl+G, haga la acción de "Archivo -> Guardar".

Un saludo y gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Menú con atajos

Publicado por daniel (4 intervenciones) el 23/10/2008 17:31:58
las hotkeys para un menu se llaman Accelerators, aqui tienes una porcion de codigo que muestra su uso:

static String[] strData = {"Cortar", "Copiar", "Pegar", "Borrar"};
static char[] mnData = {'C', 'o', 'P', 'D'}
.
.
.
menu = new JMenu("Edit");
menu.setMnemonic('E');


menuitem = new JMenuItem(strData[i]);
menuitem.setMnemonic(mnData[i]);
//Control+X para Cortar
menuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK));
menuitem.addActionListener(this);
menu.add(menuitem);
i ++;


menuitem = new JMenuItem(strData[i]);
menuitem.setMnemonic(mnData[i]);
//Control+C para Copiar
menuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK));
menuitem.addActionListener(this);
menu.add(menuitem);
i ++;

menuitem = new JMenuItem(strData[i]);
menuitem.setMnemonic(mnData[i]);
menuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK));
menuitem.addActionListener(this);
menu.add(menuitem);
i ++;
.
.

Espero haber sido de ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Menú con atajos

Publicado por eltiolopez (14 intervenciones) el 23/10/2008 18:18:52
Perfecto. Muchas gracias por el ejemplo y por la rapidez en la respuesta. Era justo lo que estaba buescando. Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar