如何检查左尖括号键是否被按下?

时间:2016-04-20 17:46:19

标签: java keyboard keycode

在Java中,我检查了虚拟密钥代码列表,并且没有VK用于'<&#;;'。我试过" VK_LESS"我的程序(听起来可能是'<'),但这也不起作用。

我想知道是否必须检查是否按下Shift键,然后检查是否也按下了逗号键,但我不确定如何在KeyHandler类中执行此操作,使用keyPressed方法的switch语句。

3 个答案:

答案 0 :(得分:2)

KeyHandler keyPressed方法将收到KeyEvent。您可以在isShiftDown()上拨打KeyEvent,查看当前是否按下了shift键。

public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_COMMA && e.isShiftDown()) {
         // do your thing!
    }
}

您也可以尝试:

public void keyTyped(KeyEvent e) {
    if (e.getKeyChar() == '<') {  
         ...
    }
}

请注意使用keyTyped而不是keyPressedkeyTyped仅在按键输出字符时触发,而不是在每次按键时触发。这种方法更有可能适用于其他类型的键盘。但是我没有尝试过,所以我不知道它是否会起作用。

答案 1 :(得分:0)

我相信您想要使用VK_LESS和VK_GREATER作为“&lt;”和“&gt;”分别。

答案 2 :(得分:0)

您可以使用KeyEvents.getKeyChar()方法

@echo off
REM get the two important lines into variables:
for /f "tokens=*" %%a in ('find "Repository Root" file.txt') do set var1=%%a
for /f "tokens=*" %%a in ('find "Relative URL" file.txt') do set var2=%%a

:loop
REM var1 - remove from the beginning until (including) the first '/':
set var1=%var1:*/=%
REM if there is another '/' then do it again:
if "%var1%" neq "%var1:/=%" goto :loop
REM kind of "brute force", isn't it?

REM var2: remove from the beginning until (including) 'branches/':
set var2=%var2:*branches/=%
REM take the first token by '/' as delimiter:
for /f "delims=/" %%a in ("%var2%") do set var2=%%a

set var