我想呼吁的actionPerformed()在正常的方法类的.我知道只要按下按钮就会自动执行.但是我想在特定文本字段上按下ENTER按钮时调用该方法.是否有可能调用actionPerformed()的keyPressed()或正常功能/方法.
以下代码将让您粗略了解我想要做什么.
void myFunction()
{
actionPerformed(ActionEvent ae);
}
public void actionPerformed(ActionEvent ae)
{
//my code
}
Run Code Online (Sandbox Code Playgroud)
提前致谢
我有一个应用程序,每次按下空格键时都会执行某些操作(例如警报).如果我不使用JAWS屏幕阅读器,这可以正常工作.但是,一旦我加载JAWS屏幕阅读器,当我按空格键时它不会执行警报.我需要使用JAWS,所以我需要这个工作.这是代码片段.
$(document).keypress(function(event) {
var chCode = ('charCode' in event) ? event.charCode : event.keyCode;
if (chCode == 32){ //32 is keyCode for spacebar
alert("spacebars!!!");
}
});
Run Code Online (Sandbox Code Playgroud)
根据我的观察,似乎JAWS抓住键盘焦点并且不允许空格键事件触发.当我按下空格键时JAWS总是读取"Space"但警报事件不会触发.当空格键按下时,如何仍然可以触发警报或doSomething()?如何从JAWS获取控制权或者可以与JAWS共享键盘控制,这样即使JAWS读出我按下的角色(在本例中为Spacebar),它也会允许我的事件(警报)触发.谢谢.
更多代码:
$(document).keypress(function(event) {
var cc= ('charCode' in event) ? event.charCode : event.keyCode;
if (cc == 32)
{
spArray.push(Number(new Date()));
}
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试捕获在 TextInputEditText(来自 Material Design)上按下了哪个键,尽管我从键盘上按下了任意键,但我无法进入 onKey 方法。有人可以帮助我吗?
txtInputApo.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.i("onKey","true");
if(event.getAction() == KeyEvent.ACTION_UP){
switch (keyCode){
case KeyEvent.KEYCODE_SPACE:
String Espaces = txtInputApo.getText().toString().replaceAll(" ", "");
txtInputApo.setText(Espaces);
txtInputApo.setSelection(Espaces.length());
break;
}
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在尝试通过 AccessibilityService 导航到浏览器中的 URL。我能够找到 URL 栏并在 EditText 中输入 URL,但我找不到按 Enter 键实际转到那里的方法。除了弹出的建议之外,屏幕上也没有任何用于“执行”或“输入”的元素,但根据浏览器的不同,这些节点并不总是可单击的。
是否可以从 AccessibilityService 发送键盘“输入”键事件?
如果你使用java KeyListener类,你知道如果你按住一个键keyPressed会触发一个KeyEvent,然后大约半秒后将非常快地多次触发相同的键.我想知道是否有办法防止KeyEvents射击太快.我希望它们以大约每500毫秒一次的恒定速率运行.
我有一个带android:inputType="phone"键盘的EditText ."OK"这个键盘上有一个.我喜欢抓住这个OK btn.但是我不知道关键事件.我想使用这样的代码:
setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
case KeyEvent.?????????? <- this one please
return true;
default:
break;
}
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
我希望代码与按"圆箭"不同!
我检查了文档中的所有关键事件但找不到任何内容.谢谢
我正在使用JavaFX 2.2中的应用程序.我正在使用两个字段(用户名和密码)登录到活动目录,并有一个登录按钮.一切都很完美.但是我添加了一个KeyEvent EventHandler来处理按ENTER的键事件.问题是当用户按下SHIFT键时也会使用它.下面是我的Handler的代码,并且在应用程序中没有使用其他KeyEvent处理程序.
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
...
private EventHandler<KeyEvent> keyListener = new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if(event.getCode() == KeyCode.ENTER); {
startLogin();
getContext();
try {
checkUserLevel();
} catch (Exception e) {
actionTarget.setText("Unable to authenticate user\n" + userTextField.getText());
}
event.consume();
}
}
};
Run Code Online (Sandbox Code Playgroud)
这是JavaFX中的错误吗?
如何以编程方式触发JTextField正在侦听事件的按键事件ENTER?
我的关键事件的监听JTextField器声明如下:
myTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
// Do stuff
}
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢.
创建时KeyListener,它需要以下字段:
public void keyPressed(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
Run Code Online (Sandbox Code Playgroud)
但是,当我放入System.out.println(e)该keyPressed方法时,当按Enter键时它将返回此值:
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=10,keyText=?,keyChar=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0] on javax.swing.JButton[,1,1,100x100,alignmentX=0.0,alignmentY=0.5,border=com.apple.laf.AquaButtonBorder$Dynamic@13b33a0e,flags=288,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=2,bottom=0,right=2],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=HI,defaultCapable=true]
Run Code Online (Sandbox Code Playgroud)
显然这不是KeyEvent,所以我不能使用它来调用keyPressed(KeyEvent e)。我想要做的是模拟一个按键(特别是Enter键)的按下,这种方式可以激活keyListener并将该文本输出到JTextArea中。
注意:我查看了如何完美模拟KeyEvent的可接受答案 。,并且几乎不了解其实际工作原理,并且我希望我理解代码。我也在这里看过如何在Java中模拟键盘按键?,但是我不能让机器人工作;当应该按任何键时,什么也没发生。
有没有一种方法可以确定键盘或鼠标事件是从硬件而不是由Windows上运行的桌面应用程序中的TeamViewer,Steam或其他远程桌面软件之类的应用程序触发的?
我的目的不是阻止机器人,而是阻止对应用程序的远程访问。
似乎RawInput API可以让我检测使用SendInput API发送的虚假事件。这是对的吗?
keyevent ×10
java ×4
keylistener ×4
android ×3
swing ×3
jtextfield ×2
delphi ×1
javafx ×1
javascript ×1
raw-input ×1
windows ×1