API 参考 / 只读视图、场景、音频与文本
InputEvent
输入事件抽象(宿主把内核输入转换为该事件)。模组在 Scene#handleInput(InputEvent) 中收到它,并转发给聚焦的输入组件(如 TextField 的 handleInput)。
方法速览
| 方法 | 用途 |
|---|---|
keyCode() | 键码(与 java.awt.event.KeyEvent 一致) |
type() | 事件类型 |
text() | 提交文本(仅 TEXT_INPUT 有效) |
mouseX() / mouseY() | 鼠标逻辑坐标(仅鼠标事件有效) |
mouseButton() | 鼠标按钮(1 = 左键) |
shiftDown() / ctrlDown() | 事件发生时的修饰键状态 |
keyCode()
java
int keyCode();行为:键码,与 java.awt.event.KeyEvent 键码一致;文本事件(TEXT_INPUT)与鼠标事件中恒为 0。
示例:
java
if (event.keyCode() == java.awt.event.KeyEvent.VK_ENTER) { submit(); }type()
java
InputType type();行为:事件类型,见 InputType。宿主当前对模组场景只派发 KEY_PRESSED、TEXT_INPUT 与三种鼠标事件(不派发 KEY_HELD / KEY_RELEASED)。
示例:
java
if (event.type() != InputType.KEY_PRESSED) return false;text()
java
default String text();行为:系统输入法/键盘提交的文本,仅 TEXT_INPUT 有效,其余事件返回空串。宿主按字符逐个派发(每个字符一个事件,text() 长度为 1)。
示例:
java
if (event.type() == InputType.TEXT_INPUT) {
field.typeString(event.text());
}mouseX()
java
default int mouseX();行为:鼠标事件的 X,坐标为场景渲染空间的逻辑坐标(1280×720,宿主已从画布像素换算);键盘与文本事件恒为 -1。
示例:
java
int x = event.mouseX();mouseY()
java
default int mouseY();行为:鼠标事件的 Y(逻辑坐标);键盘与文本事件恒为 -1。
示例:
java
int y = event.mouseY();mouseButton()
java
default int mouseButton();行为:鼠标按钮,1 = 左键;键盘与文本事件返回 0。 示例:
java
if (event.mouseButton() == 1) { /* 左键 */ }shiftDown()
java
default boolean shiftDown();行为:事件发生时 Shift 是否按下(宿主填充),供输入组件区分「移动光标」与「扩展选区」;默认 false。
示例:
java
field.keyPressed(event.keyCode(), event.shiftDown(), event.ctrlDown());ctrlDown()
java
default boolean ctrlDown();行为:事件发生时 Ctrl 是否按下(宿主填充),供输入组件识别 Ctrl+C/X/V/Z/Y/A 组合;默认 false。
示例:
java
if (event.ctrlDown()) { /* 快捷键分支 */ }完整签名
java
public interface InputEvent {
int keyCode();
InputType type();
default String text();
default int mouseX();
default int mouseY();
default int mouseButton();
default boolean shiftDown();
default boolean ctrlDown();
}线程:源码未声明额外线程约束(宿主在渲染线程同步派发)。
性能:源码未标注额外性能约束(不可变事件对象)。
稳定性:2.0 起冻结:2.x 内只增不破。