andrezito 21 de out. de 2021
É, por padrão as teclas de setas que funcionam no teclado numerico sao 8,2,6,4
wldomiciano 21 de out. de 2021 1 like
Dá para diferenciar o PAGE_DOWN “normal” do PAGE_DOWN do numpad usando o método KeyEvent.getKeyLocation(), veja:
import java.awt.event.KeyEvent ;
import java.awt.event.KeyListener ;
import javax.swing.JFrame ;
public class Main {
public static void main ( String ... args ) {
final JFrame frame = new JFrame ();
frame . addKeyListener ( new KeyListener () {
@Override
public void keyPressed ( KeyEvent e ) {
final int code = e . getKeyCode ();
final boolean isNumpad = e . getKeyLocation () == KeyEvent . KEY_LOCATION_NUMPAD ;
if ( code == KeyEvent . VK_NUMPAD1 || ( code == KeyEvent . VK_END && isNumpad )) {
System . out . println ( "1" );
} else if ( code == KeyEvent . VK_NUMPAD3 || ( code == KeyEvent . VK_PAGE_DOWN && isNumpad )) {
System . out . println ( "3" );
} else if ( code == KeyEvent . VK_NUMPAD7 || ( code == KeyEvent . VK_HOME && isNumpad )) {
System . out . println ( "7" );
} else if ( code == KeyEvent . VK_NUMPAD9 || ( code == KeyEvent . VK_PAGE_UP && isNumpad )) {
System . out . println ( "9" );
}
}
@Override
public void keyTyped ( KeyEvent e ) {
}
@Override
public void keyReleased ( KeyEvent e ) {
}
});
frame . setSize ( 300 , 300 );
frame . setLocationRelativeTo ( null );
frame . setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );
frame . setVisible ( true );
}
}
Só não sei se vai funcionar 100% pro que vc precisa e também eu só testei no Linux.
fabiozika 21 de out. de 2021
Tem alguma forma de simular o pressionamento dessa tecla com a classe robot?
wldomiciano 22 de out. de 2021
Essa classe eu nunca usei, então não sei dizer.