GVKun编程网logo

Ruby键盘事件处理(处理键盘事件的java程序,要实现的接口是)

10

如果您对Ruby键盘事件处理和处理键盘事件的java程序,要实现的接口是感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Ruby键盘事件处理的各种细节,并对处理键盘事件的java程序,要实现的接

如果您对Ruby键盘事件处理处理键盘事件的java程序,要实现的接口是感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Ruby键盘事件处理的各种细节,并对处理键盘事件的java程序,要实现的接口是进行深入的分析,此外还有关于20 款处理键盘事件的 JavaScript 库、3-3 编程练习:jQuery键盘事件案例、Android – 处理虚拟和物理键盘事件、Android 事件处理方法总结 - 基于回调的事件处理的实用技巧。

本文目录一览:

Ruby键盘事件处理(处理键盘事件的java程序,要实现的接口是)

Ruby键盘事件处理(处理键盘事件的java程序,要实现的接口是)

你好,我用curses来开发一个小的控制台应用程序。

我有一个主循环部分等待用户input,它使用getstr函数,当然这个等待用户按回车。

我想捕捉上下和选项卡的按键。 我想这不能用getstr来完成。

任何人有任何想法如何做到这一点?

Win32 C ++控制台清除屏幕不闪烁

控制台窗口得到窃听,如果我得到窗口句柄太早..?

2 AverageTimer32性能计数器

如何编写一个C ++控制台窗口程序

在C程序完成之后,如何保持控制台closures?

编辑:我已经尝试使用STDIN.getc这将阻止应用程序运行,getch不捕获箭头键

编辑#2:即时通讯在Windows上尝试此代码。 似乎Curses.getch适用于Linux,但在Windows上,我没有得到向上箭头发送的密钥。

自定义控制台应用程序的标题栏区域

从儿童GUI过程发送文本到控制台父母的最简单方法是什么?

用于在Linux上开发应用程序的高级语言

如何在GUI应用程序中写入控制台

如何将Ctrl-C消息传递给在Windows上运行的进程?

您需要设置tty的“cbreak”模式,以便立即获得按键。 如果不这样做,Unix终端处理系统将缓冲输入,直到收到一个换行符(即用户点击ENTER ),输入将全部交给进程。

这实际上并不是Ruby–甚至是诅咒特定的; 这是通过Unix tty运行的所有应用程序的方式。

尝试使用curses库cbreak()函数打开此模式。 不要忘记在退出之前调用nocbreak()来关闭它!

为了读取单个字符, STDIN.getc将返回该字符的ASCII码的Fixnum。 很可能你会发现STDIN.read(1)更方便,因为它返回下一个字符的一个字符的字符串。

然而,你会发现“上/下”键,如果你的意思是箭头键,实际上是一个字符序列。 在大多数类似于ANSI的终端仿真器(如xterm)中,向上箭头将是“ e[A ”( e是一个转义字符)。 有termcap(终端能力)数据库来处理这种事情,你可以通过curses来访问它们,但是从内在的角度来看,你可能会发现最简单的做法就是直接尝试解释这些。 这些日子里,你不太可能使用ANSI代码以外的任何其他终端。

你想getch而不是getstr。 还可以看到简·桑普森对箭头键不是单个字符的评论。

20 款处理键盘事件的 JavaScript 库

20 款处理键盘事件的 JavaScript 库

键盘事件可以提高网站的易用性,提高用户与网站的交互体验,或者是页面需要通过键盘输入来触发事件。这些都非常有必要使用快捷键或者是键盘输入条目。

将这些事件处理整合到 HTML 文档中,通过 JavaScript 来定义相关的功能,是另一个非常好的方法,让 web 应用像桌面应用一样方便操作。接下来我们要介绍收集到的 20 款 JavaScript 处理键盘时间的库,帮助用户处理各种键盘事件,方便实用,好好欣赏吧:)

Keypress

Keypress 是个有着许多特别功能的输入捕捉库,它非常容易使用,有个极小的脚本(约9kb),而且没有任何依赖。这个库支持所有主流的浏览器和操作系统,但是没在非英文的键盘上测试过。



Mousetrap

Mousetrap 是个没有外部依赖的独立库,它最小约为 1.9kb,Mousetrap 非常容易扩展,只要页面中包括 Mousetrap 和需要扩展的 JavaScript 库就可以了。

Mousetrap支持的浏览器有: Internet Explorer 6+, Safari, Firefox 和 Chrome。

jQuery Hotkeys

jQuery.Hotkeys 允许用户在源代码中添加或者删除各种键盘事件,几乎支持任何组合键。只需要一行代码就可以绑定或者解绑快捷键。支持(Win/Mac/Linux)平台上 的浏览器: IE 6/7/8, FF 1.5/2/3, Opera-9, Safari-3 and Chrome-0.2。


Keymage

Keymage 是用 JavaScript 实现的极小的处理快捷键绑定的库,它没有任何的依赖项,非常容易扩展,用户很容易就能使用它开发一个新的库。
KeyboardJS

KeyboardJS 是个 JavaScript 库,用来绑定键盘组合键,不会有任何的键盘代码和键盘组合键冲突。它可以作为一个独立的库也可以作为一个 AMD 模块。它支持单一快捷键或者组合键,可以在任何地方使用。

kbNav

kbNav 可以很方便的使用键盘来进行用户友好的网站导航。kbNav 快捷键会出现在用户点击的对象中。用户可以很方便的找到想要使用的快捷键。用户可以使用网站开发一些无意识的快捷键和一些行为的关联,消除记忆快捷键和行 为的麻烦。kbNav 只需要点击相应的键盘,按 Enter 就可以生效,而且快捷键可以包含字每和数字,用户可以为每个行为都制作相应的快捷键。

Keymaster.js

Keymaster 是个简单的微型库,用来定义和分配 web 应用的各种快捷键。Keymaster 没有任何依赖项,可以完全独立使用。它支持任何的 JavaScript 库或者是框架。
Keymaster 可以在任何浏览器上定义 keyup 和 keydown 事件的快捷键。目前支持的浏览器有: IE (6+), Safari, Firefox 和 Chrome。

Jwerty

jwerty 是个 JS 库,允许用户绑定,启用和定义相关元素和世间的快捷键方式。它一般包括一些极小的标准 API ,非常容易使用和清除。它大小约为 1.5kb ,而且没有任何依赖项,同时又兼容 jQuery,Zepto 或者其他 。
KeyCode.js

KeyCode.js 是个跨浏览器的 JavaScript 常规键盘快捷键库。这个库围绕键盘对象来运行,还有一些 { Int code, bool shift, bool alt, bool ctrl } JavaScript 对象,记录用户按下的键盘对象。translate_event() 方法会返回其中一个对象; hot_key() 获取其中一个然后返回一个符合 JQuery HotKey 插件或者  Binny V A''s shortcut.js 库的字符串。
Handling Keyboard Shortcuts in JavaScript

使用这个库,用户可以添加键盘快捷键到 JavaScript 应用中,它支持Mac 的 Meta Key,但是目前只是测试版,需要小心使用。
keyboard.backbone.js

keyboard.backbone.js 依赖于 domEvents.backbone.js,domEvents.backbone.js 又依赖于 jQuery 和 Backbone。keyboard.backbone.js 主要是依赖 domEvents 的 keyDown 和 keyUp(也叫做:key:down 和 key:up),所以如果用户想执行不一样的 key:press 需要另外一个不同的库。

Kibo

Kibo 是个简单的 JavaScript 库,用来处理各种键盘事件,没有任何依赖,而且完全开源。
JavaScript Shortcuts Library

这是个令人印象深刻,而且又容易使用的 JavaScript 快捷键库,可以处理各种键盘事件。

User Keyboard Shortcuts

UserKeyboardShortcuts 是重构了 mootools-more 提供的键盘类,提供给用户本地自定义的键盘快捷键,不需要用户做过多的操作。
用 户只需要用 Keyboard.addShortcuts ( Keyboard.Extras提供的 )来改变他们的快捷键。UserKeyboardShortcuts 使用 localStorage (对 cookie 失效)来存储用户所做的修改,当页面重新加载的时候恢复原状。 
okShortcut

okShortcut 包括两个方法: jQuery.shortcut.add 和 jQuery.shortcut.remove ,分别用来添加和删除快捷键绑定。两者都可以绑定组合键和进行回调。 jQuery.shortcut.add 可以选择接收一个选项 hash。


jQuery Beeline
Beeline 是用最直接的方式去绑定快捷键,为 web 应用提供键盘导航。它是基于 jQuery Hotkeys.。


jQuery Shortcuts

jQuery Shortcuts 是个超轻量级的方法,使用 jQuery 来绑定快捷键(热键)。
KEY-BOARD-SHORT-CUTS

key-board-short-cuts 是用 JavaScript 实现的简单键盘快捷键示例,它不是一个复杂的 JavaScript 绑定事件。绑定快捷键之后所有的行为都需要开发者自己去自定义。

jKey

jKey 是另一个非常有用的 JavaScript 快捷键库,用来处理键盘事件。它使用 jQuery,所以可以选择任何可用的元素来设置快捷键命令。基本上,任何元素,比如一个输入框或者文本框,都会有一款适用的快捷键命令。

Keys.js

Keys.js 是个卓越的浏览器应用快捷键绑定工具,它可以使用 localStorage 来进行序列化持久性绑定,或者上传到服务器中,对用户的 web 应用进行个性化设置。使用相同的 API 就可以很方便的反序列化。
Key.js 拥有 CommonJS 和 AMD 模块的支持,可以跟 require.js 或者其他模块加载器一起使用,目前支持的浏览器有: IE7+, Firefox 21+, Safari 6+ and Chrome 27+。


欣赏完这么多方便又惊艳的键盘事件处理工具,跟大家分享一下你的感受吧:)

via realcombiz.com

3-3 编程练习:jQuery键盘事件案例

3-3 编程练习:jQuery键盘事件案例

3-3 编程练习

完善下面的代码,在input框中输入内容的时候同样显示在下面的p标签中

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <Meta charset="UTF-8">
    <title>习题</title>
</head>

<body>
    <input type="text" value="">
    <p></p>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
    <script>
    //此处写代码
    </script>
</body>

</html>

 

任务

1、选中input元素

2、使用键盘事件,将input框中的内容添加到p标签中

任务提示

val()方法返回或者设置被选元素的值,获取输入框中的内容可以使用val()

参考代码

$($).ready(function () {
    $('input').keyup(function () {
        $('p').text($('input').val());
    })
})
View Code

 

Android – 处理虚拟和物理键盘事件

Android – 处理虚拟和物理键盘事件

在阅读了几个类似问题的答案之后*我确实意识到onKeyListener()没有从软(虚拟)键盘获得按键事件.它只能从硬(物理)键盘获取它们.解决方法是使用TextWatcher或onKeyboardActionListener.我有以下问题:

(1)有没有办法能够通过实现一个监听器从任何键盘(软或硬)听按键?或基本上是一个适用于两者的API?

(2)TextWatcher或onKeyboardActionListener与onKeyListener()的onKey()方法不同,不传递当前具有焦点的视图(用户正在键入输入).那么,如果我要使用TextWatcher或onKeyboardActionListener,如何获得当前关注的视图?我需要这个能够在EditText上设置一些属性,用户根据输入键入他们的输入.

*相关问题:
onKeyListener not working on virtual keyboard,
onKeyListener not working with soft keyboard (Android),
Android: why is my OnKeyListener() not called?

谢谢!

解决方法:

我有同样的问题.并且假设没有好的方法来实现处理软键盘事件的解决方案.我已经为delete事件实现了onKeyListener(),为keys事件实现了TextWatcher.

m_edtRecipients.addTextChangedListener(new TextWatcher() {
        boolean bConsumed = false;

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if (!bConsumed) {
                RecipientsTextStyle.format(m_edtRecipients.getText(), m_dbProcessor);
            }
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            if (count != 0) {
                bConsumed = true;
                Log.d(TAG, "delete true");
            } else {
                bConsumed = false;
                Log.d(TAG, "erase false");
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

TextWatcher方法有一个很大的缺点 – 您无法更改EditText链接的可编辑 – 它将导致循环.小心!

Android 事件处理方法总结 - 基于回调的事件处理

Android 事件处理方法总结 - 基于回调的事件处理

高春辉、王春生、朱峰:关于开源创业的 15 件小事

转:

Android 事件处理方法总结 - 基于回调的事件处理

一、Android 中的事件处理方法

事件处理:响应用户 UI 动作,提高应用程序交互性

1、基于监听的事件处理机制

2、基于回调的事件处理机制

3、Handler 消息处理

前面我们已经介绍了 Android 事件处理方法总结 - 基于监听,这里我们总结一下 Android 事件处理方法总结 - 基于回调

二、基于回调的事件处理机制详解

1、回调事件处理原理

监听事件处理是事件源与事件监听器分开的

而基于回调的事件处理 UI 组件不但是事件源,而且还是事件监听器,通过组件的相关回调方法处理对应的事件

2、回调事件应用步骤

Ⅰ. 自定义 View 类,继承自需要的 View UI 类。ex :自定义 MyButton 按钮类 extends 基础 Button 类

Ⅱ. 复写回调函数。ex:public boolean onTouchEvent (MotionEvent event)

每一个事件回调方法都会返回一个 boolean 值,①. 如果返回 true:表示该事件已被处理,不再继续向外扩散,②. 如果返回 false:表示事件继续向外扩散

android.view.View 类提供了很多回调方法,ex:onKeyDown 监测键盘按下....,具体参考 API 文档

3、回调事件应用示例

demo:点击按钮后,Toast 弹出按钮被触碰的事件信息

自定义 View 类 MyButton,并重写事件回调方法

package com.yihui.ui;
 
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.Button;
import android.widget.Toast;
 
public class MyButton extends Button {
 
	private static final String TAG = "EventCallBack";
 
	public MyButton(Context context, AttributeSet attrs) {
		super(context, attrs);
	}
	
	/* 重写 onTouchEvent触碰事件的回调方法 */
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		Log.i(TAG, "我是MyButton,你触碰了我:  " + event.getAction());
		Toast.makeText(getContext(), "我是MyButton,你触碰了我:  " + event.getAction(), 0).show();
		return false; //返回false,表示事件继续向外层(即父容器)扩散
	}
}

布局文件 xml:activity_main.xml


  
  
 
    
   
   
 

  
  

Activiy, 同样也复写了事件回调方法,测试事件的扩散

package com.yihui.eventhandler;
 
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    private static final String TAG = "EventCallBack";
 
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    @Override
    public boolean onTouchEvent(MotionEvent event) {
    	
    	Log.i(TAG, "我是MainActivity,发现触碰事件: " + event.getAction());
    	Toast.makeText(MainActivity.this, "我是MainActivity,发现触碰事件!: " + event.getAction(), 0).show();
    	return true;
    }
}

测试效果:

Android事件处理方法总结-基于回调的事件处理

转:

Android 事件处理方法总结 - 基于回调的事件处理


--Posted from Rpc

我们今天的关于Ruby键盘事件处理处理键盘事件的java程序,要实现的接口是的分享已经告一段落,感谢您的关注,如果您想了解更多关于20 款处理键盘事件的 JavaScript 库、3-3 编程练习:jQuery键盘事件案例、Android – 处理虚拟和物理键盘事件、Android 事件处理方法总结 - 基于回调的事件处理的相关信息,请在本站查询。

本文标签: