com.ardor3d.input.KeyEvent类的使用及代码示例

x33g5p2x  于2022-01-23 转载在 其他  
字(10.0k)|赞(0)|评价(0)|浏览(91)

本文整理了Java中com.ardor3d.input.KeyEvent类的一些代码示例,展示了KeyEvent类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。KeyEvent类的具体详情如下:
包路径:com.ardor3d.input.KeyEvent
类名称:KeyEvent

KeyEvent介绍

[英]Describes the state of a key - either it has been pressed or it has been released. Also keeps track of which character the event corresponds to - the difference between a key and a character is that a key corresponds to a physical key on the keyboard, whereas the character is the character that a keypress combination represents. Keys are universal and mapped into the Key enum, whereas characters can be any char value. Some examples of the differences:

  • On almost any keyboard, pressing Key#EIGHT results in the character '8'.
  • On an English keyboard, pressing Key#EIGHT when the Key#LSHIFT is down leads to the character '*'.
  • On a Swedish keyboard, pressing Key#EIGHT when the Key#LSHIFT is down leads to the character '('.
    [中]描述按键的状态-按键已按下或已释放。还跟踪事件对应的字符-键和字符之间的区别在于键对应于键盘上的物理键,而字符是按键组合表示的字符。键是通用的并映射到键枚举中,而字符可以是任何字符值。差异的一些例子:
    *几乎在任何键盘上,按#8键都会生成字符“8”。
    在英文键盘上,当#LSHIFT键按下时,按#8键将显示字符“”。
    *在瑞典键盘上,当“LSHIFT”键按下时,按“EIGHT”键可显示字符“(”。

代码示例

代码示例来源:origin: Renanse/Ardor3D

public synchronized void keyReleased(final java.awt.event.KeyEvent e) {
  final Key released = fromKeyEventToKey(e);
  _upcomingEvents.add(new KeyEvent(released, KeyState.UP, e.getKeyChar()));
  _pressedList.remove(released);
  if (_consumeEvents) {
    e.consume();
  }
}

代码示例来源:origin: com.ardor3d/ardor3d-core

private void readKeyboardState() {
  final PeekingIterator<KeyEvent> eventIterator = _keyboardWrapper.getEvents();
  // if no new events, just leave the current state as is
  if (!eventIterator.hasNext()) {
    return;
  }
  final KeyEvent keyEvent = eventIterator.next();
  // EnumSet.copyOf fails if the collection is empty, since it needs at least one object to
  // figure out which type of enum to deal with. Hence the check below.
  final EnumSet<Key> keysDown = _currentKeyboardState.getKeysDown().isEmpty() ? EnumSet.noneOf(Key.class)
      : EnumSet.copyOf(_currentKeyboardState.getKeysDown());
  if (keyEvent.getState() == KeyState.DOWN) {
    keysDown.add(keyEvent.getKey());
  } else {
    // ignore the fact that this removal might fail - for instance, at startup, the
    // set of keys tracked as down will be empty even if somebody presses a key when the
    // app starts.
    keysDown.remove(keyEvent.getKey());
  }
  _currentKeyboardState = new KeyboardState(keysDown, keyEvent);
}

代码示例来源:origin: com.ardor3d/ardor3d-ui

final char c = state.getKeyboardState().getKeyEvent().getKeyChar();
if (c >= 32 && c != (char) -1) {
  if (selection.getSelectionLength() > 0) {

代码示例来源:origin: com.ardor3d/ardor3d-ui

final char c = state.getKeyboardState().getKeyEvent().getKeyChar();
if (c >= 32 && c != (char) -1) {
  if (selection.getSelectionLength() > 0) {

代码示例来源:origin: com.ardor3d/ardor3d-awt

public synchronized void keyReleased(final java.awt.event.KeyEvent e) {
  final Key released = fromKeyEventToKey(e);
  _upcomingEvents.add(new KeyEvent(released, KeyState.UP, e.getKeyChar()));
  _pressedList.remove(released);
  if (_consumeEvents) {
    e.consume();
  }
}

代码示例来源:origin: Renanse/Ardor3D

private void readKeyboardState() {
  final PeekingIterator<KeyEvent> eventIterator = _keyboardWrapper.getEvents();
  // if no new events, just leave the current state as is
  if (!eventIterator.hasNext()) {
    return;
  }
  final KeyEvent keyEvent = eventIterator.next();
  // EnumSet.copyOf fails if the collection is empty, since it needs at least one object to
  // figure out which type of enum to deal with. Hence the check below.
  final EnumSet<Key> keysDown = _currentKeyboardState.getKeysDown().isEmpty() ? EnumSet.noneOf(Key.class)
      : EnumSet.copyOf(_currentKeyboardState.getKeysDown());
  if (keyEvent.getState() == KeyState.DOWN) {
    keysDown.add(keyEvent.getKey());
  } else {
    // ignore the fact that this removal might fail - for instance, at startup, the
    // set of keys tracked as down will be empty even if somebody presses a key when the
    // app starts.
    keysDown.remove(keyEvent.getKey());
  }
  _currentKeyboardState = new KeyboardState(keysDown, keyEvent);
}

代码示例来源:origin: Renanse/Ardor3D

char c = state.getKeyboardState().getKeyEvent().getKeyChar();
if (c == '\r') {
  c = '\n';

代码示例来源:origin: Renanse/Ardor3D

public synchronized void keyPressed(final java.awt.event.KeyEvent e) {
  final Key pressed = fromKeyEventToKey(e);
  if (!_pressedList.contains(pressed)) {
    _upcomingEvents.add(new KeyEvent(pressed, KeyState.DOWN, e.getKeyChar()));
    _pressedList.add(pressed);
  }
  if (_consumeEvents) {
    e.consume();
  }
}

代码示例来源:origin: Renanse/Ardor3D

@Test
public void testKeys2() throws Exception {
  e1.keyCode = 'a';
  e2.keyCode = 'b';
  kw.keyPressed(e1);
  kw.keyPressed(e2);
  final Iterator<KeyEvent> events = kw.getEvents();
  final KeyEvent event1 = events.next();
  final KeyEvent event2 = events.next();
  final KeyEvent event3 = events.next();
  assertFalse("no more", events.hasNext());
  assertFalse("no more", kw.getEvents().hasNext());
  assertEquals("key a", Key.A, event1.getKey());
  assertEquals("down", KeyState.DOWN, event1.getState());
  assertEquals("key a", Key.A, event2.getKey());
  assertEquals("up", KeyState.UP, event2.getState());
  assertEquals("key b", Key.B, event3.getKey());
  assertEquals("down", KeyState.DOWN, event3.getState());
}

代码示例来源:origin: com.ardor3d/ardor3d-awt

public synchronized void keyPressed(final java.awt.event.KeyEvent e) {
  final Key pressed = fromKeyEventToKey(e);
  if (!_pressedList.contains(pressed)) {
    _upcomingEvents.add(new KeyEvent(pressed, KeyState.DOWN, e.getKeyChar()));
    _pressedList.add(pressed);
  }
  if (_consumeEvents) {
    e.consume();
  }
}

代码示例来源:origin: Renanse/Ardor3D

@Test
public void testKeys1() throws Exception {
  e1.keyCode = 'a';
  kw.keyPressed(e1);
  kw.keyReleased(e1);
  final Iterator<KeyEvent> events = kw.getEvents();
  final KeyEvent event1 = events.next();
  final KeyEvent event2 = events.next();
  assertFalse("no more", events.hasNext());
  assertFalse("no more", kw.getEvents().hasNext());
  assertEquals("key a", Key.A, event1.getKey());
  assertEquals("down", KeyState.DOWN, event1.getState());
  assertEquals("key a", Key.A, event2.getKey());
  assertEquals("up", KeyState.UP, event2.getState());
}

代码示例来源:origin: com.ardor3d/ardor3d-swt

public synchronized void keyReleased(final org.eclipse.swt.events.KeyEvent event) {
  _upcomingEvents.add(new KeyEvent(fromKeyEventToKey(event), KeyState.UP, event.character));
  _lastKeyPressed = null;
}

代码示例来源:origin: Renanse/Ardor3D

@Test
public void testKeys1() throws Exception {
  e1 = new java.awt.event.KeyEvent(control, 0, 0, 0, AwtKey.A.getAwtCode(), 'a');
  kw.keyPressed(e1);
  kw.keyReleased(e1);
  final Iterator<KeyEvent> events = kw.getEvents();
  final KeyEvent event1 = events.next();
  final KeyEvent event2 = events.next();
  assertFalse("no more", events.hasNext());
  assertFalse("no more", kw.getEvents().hasNext());
  assertEquals("key a", Key.A, event1.getKey());
  assertEquals("down", KeyState.DOWN, event1.getState());
  assertEquals("key a", Key.A, event2.getKey());
  assertEquals("up", KeyState.UP, event2.getState());
}

代码示例来源:origin: Renanse/Ardor3D

public synchronized void keyReleased(final org.eclipse.swt.events.KeyEvent event) {
  _upcomingEvents.add(new KeyEvent(fromKeyEventToKey(event), KeyState.UP, event.character));
  _lastKeyPressed = null;
}

代码示例来源:origin: Renanse/Ardor3D

@Test
public void testKeys2() throws Exception {
  e1 = new java.awt.event.KeyEvent(control, 0, 0, 0, AwtKey.A.getAwtCode(), 'a');
  e2 = new java.awt.event.KeyEvent(control, 0, 0, 0, AwtKey.B.getAwtCode(), 'b');
  kw.keyPressed(e1);
  kw.keyPressed(e2);
  final Iterator<KeyEvent> events = kw.getEvents();
  final KeyEvent event1 = events.next();
  final KeyEvent event2 = events.next();
  assertFalse("no more", events.hasNext());
  assertFalse("no more", kw.getEvents().hasNext());
  assertEquals("key a", Key.A, event1.getKey());
  assertEquals("down", KeyState.DOWN, event1.getState());
  assertEquals("key b", Key.B, event2.getKey());
  assertEquals("down", KeyState.DOWN, event2.getState());
}

代码示例来源:origin: com.ardor3d/ardor3d-swt

public synchronized void keyPressed(final org.eclipse.swt.events.KeyEvent event) {
  final Key key = fromKeyEventToKey(event);
  if (key == _lastKeyPressed) {
    // ignore if this is a repeat event
    return;
  }
  final char keyChar = event.character;
  if (_lastKeyPressed != null) {
    // if this is a different key to the last key that was pressed, then
    // add an 'up' even for the previous one - SWT doesn't send an 'up' event for the
    // first key in the below scenario:
    // 1. key 1 down
    // 2. key 2 down
    // 3. key 1 up
    _upcomingEvents.add(new KeyEvent(_lastKeyPressed, KeyState.UP, keyChar));
  }
  _lastKeyPressed = key;
  _upcomingEvents.add(new KeyEvent(key, KeyState.DOWN, keyChar));
}

代码示例来源:origin: Renanse/Ardor3D

@Test
public void testKeysRepeat() throws Exception {
  e1.keyCode = 'a';
  kw.keyPressed(e1);
  kw.keyPressed(e1);
  final Iterator<KeyEvent> events = kw.getEvents();
  final KeyEvent event1 = events.next();
  assertFalse("no more", events.hasNext());
  assertFalse("no more", kw.getEvents().hasNext());
  assertEquals("key a", Key.A, event1.getKey());
  assertEquals("down", KeyState.DOWN, event1.getState());
}

代码示例来源:origin: Renanse/Ardor3D

public synchronized void keyPressed(final org.eclipse.swt.events.KeyEvent event) {
  final Key key = fromKeyEventToKey(event);
  if (key == _lastKeyPressed) {
    // ignore if this is a repeat event
    return;
  }
  final char keyChar = event.character;
  if (_lastKeyPressed != null) {
    // if this is a different key to the last key that was pressed, then
    // add an 'up' even for the previous one - SWT doesn't send an 'up' event for the
    // first key in the below scenario:
    // 1. key 1 down
    // 2. key 2 down
    // 3. key 1 up
    _upcomingEvents.add(new KeyEvent(_lastKeyPressed, KeyState.UP, keyChar));
  }
  _lastKeyPressed = key;
  _upcomingEvents.add(new KeyEvent(key, KeyState.DOWN, keyChar));
}

代码示例来源:origin: Renanse/Ardor3D

@Override
public void invoke(final long window, final int keyCode, final int scancode, final int action,
    final int mods) {
  final Key key = GLFWKey.findByCode(keyCode);
  final KeyState state;
  switch (action) {
    case GLFW.GLFW_PRESS:
      state = KeyState.DOWN;
      break;
    case GLFW.GLFW_RELEASE:
      state = KeyState.UP;
      break;
    case GLFW.GLFW_REPEAT:
    default:
      // do nothing on REPEAT?
      return;
  }
  // TODO: Need to rewrite Ardor's text processing to handle text input coming from elsewhere.
  final char keyChar = '?';
  _upcomingEvents.add(new KeyEvent(key, state, keyChar));
}

代码示例来源:origin: com.ardor3d/ardor3d-jogl

@Override
public synchronized void keyPressed(final com.jogamp.newt.event.KeyEvent e) {
  final Key pressed = fromKeyEventToKey(e);
  if (!_pressedList.contains(pressed)) {
    _upcomingEvents.add(new KeyEvent(pressed, KeyState.DOWN, e.getKeyChar()));
    _pressedList.add(pressed);
  }
  if (_consumeEvents) {
    e.setAttachment(NEWTEvent.consumedTag);
    // ignore this event
  }
}

相关文章