本文整理了Java中com.ardor3d.input.KeyEvent
类的一些代码示例,展示了KeyEvent
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。KeyEvent
类的具体详情如下:
包路径:com.ardor3d.input.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:
代码示例来源: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
}
}
内容来源于网络,如有侵权,请联系作者删除!