本文整理汇总了Java中com.googlecode.lanterna.input.KeyType类的典型用法代码示例。如果您正苦于以下问题:Java KeyType类的具体用法?Java KeyType怎么用?Java KeyType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
KeyType类属于com.googlecode.lanterna.input包,在下文中一共展示了KeyType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: processInput
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public synchronized boolean processInput() throws IOException {
boolean gotInput = false;
KeyStroke keyStroke = readKeyStroke();
if(keyStroke != null) {
gotInput = true;
do {
if (keyStroke.getKeyType() == KeyType.EOF) {
throw new EOFException();
}
boolean handled = handleInput(keyStroke);
if(!handled) {
handled = fireUnhandledKeyStroke(keyStroke);
}
dirty = handled || dirty;
keyStroke = pollInput();
} while(keyStroke != null);
}
return gotInput;
}
示例2: stopScreen
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public synchronized void stopScreen() throws IOException {
if(!isStarted) {
return;
}
//Drain the input queue
KeyStroke keyStroke;
do {
keyStroke = pollInput();
}
while(keyStroke != null && keyStroke.getKeyType() != KeyType.EOF);
getTerminal().exitPrivateMode();
isStarted = false;
}
示例3: readInput
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
private KeyStroke readInput(boolean blocking) throws IOException {
synchronized(readMutex) {
if(!keyQueue.isEmpty())
return keyQueue.poll();
KeyStroke key = inputDecoder.getNextCharacter(blocking);
if (key != null && key.getKeyType() == KeyType.CursorLocation) {
TerminalPosition reportedTerminalPosition = inputDecoder.getLastReportedTerminalPosition();
if (reportedTerminalPosition != null)
onResized(reportedTerminalPosition.getColumn(), reportedTerminalPosition.getRow());
return pollInput();
} else {
return key;
}
}
}
示例4: handleKeyStroke
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public Result handleKeyStroke(KeyStroke keyStroke) {
Runnable selectedItem = getSelectedItem();
KeyType keyType = keyStroke.getKeyType();
if (selectedItem != null
&& (keyType == KeyType.Enter || (keyType == KeyType.Character && keyStroke.getCharacter() == ' '))) {
selectedItem.run();
return Result.HANDLED;
}
if (keyType == KeyType.Character) {
selectItem(keyStroke.getCharacter());
}
if (keyType == KeyType.Escape) {
closeListener.run();
return Result.HANDLED;
}
return super.handleKeyStroke(keyStroke);
}
示例5: createKeyInputAwarePrinter
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
public static SessionStatePrinter createKeyInputAwarePrinter(Collection<KeyStrokeBinding> bindings) {
return new SessionStatePrinter() {
private Thread t;
{
t = new Thread(() -> {
while (!isShutdown()) {
try {
KeyStroke keyStroke = readKeyInput();
if (keyStroke.isCtrlDown() && keyStroke.getKeyType() == KeyType.Character
&& keyStroke.getCharacter().equals('c')) {
shutdown();
System.exit(0);
} else {
bindings.forEach(binding -> {
if (keyStroke.equals(binding.getKeyStroke())) {
binding.getBinding().run();
}
});
}
} catch (Throwable e) {
LOGGER.error("Unexpected error when reading user input", e);
}
}
});
t.setDaemon(true);
t.start();
Runtime.getRuntime().addShutdownHook(new Thread(this::shutdown));
}
@Override
public void shutdown() {
if (!isShutdown()) {
super.shutdown();
t.interrupt();
}
}
};
}
示例6: handleKeyStroke
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public Result handleKeyStroke(KeyStroke keyStroke) {
Object selectedItem = getSelectedItem();
if(selectedItem != null &&
(keyStroke.getKeyType() == KeyType.Enter ||
(keyStroke.getKeyType() == KeyType.Character && keyStroke.getCharacter() == ' '))) {
((Runnable)selectedItem).run();
return Result.HANDLED;
}
return super.handleKeyStroke(keyStroke);
}
示例7: handleKeyStroke
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public Result handleKeyStroke(KeyStroke keyStroke) {
if(keyStroke.getKeyType() == KeyType.Enter) {
action.run();
return Result.HANDLED;
}
return super.handleKeyStroke(keyStroke);
}
示例8: handleKeyStroke
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public synchronized Result handleKeyStroke(KeyStroke keyStroke) {
if(keyStroke.getKeyType() == KeyType.Enter ||
(keyStroke.getKeyType() == KeyType.Character && keyStroke.getCharacter() == ' ')) {
if(itemStatus.get(getSelectedIndex()))
itemStatus.set(getSelectedIndex(), Boolean.FALSE);
else
itemStatus.set(getSelectedIndex(), Boolean.TRUE);
return Result.HANDLED;
}
return super.handleKeyStroke(keyStroke);
}
示例9: handleKeyStroke
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public Result handleKeyStroke(KeyStroke keyStroke) {
if((keyStroke.getKeyType() == KeyType.Character && keyStroke.getCharacter() == ' ') ||
keyStroke.getKeyType() == KeyType.Enter) {
setChecked(!isChecked());
return Result.HANDLED;
}
return super.handleKeyStroke(keyStroke);
}
示例10: handleInput
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public boolean handleInput(KeyStroke key) {
if(key.getKeyType() == KeyType.Escape) {
close();
return true;
}
return super.handleInput(key);
}
示例11: handleKeyStroke
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public synchronized Result handleKeyStroke(KeyStroke keyStroke) {
if(keyStroke.getKeyType() == KeyType.Enter ||
(keyStroke.getKeyType() == KeyType.Character && keyStroke.getCharacter() == ' ')) {
checkedIndex = getSelectedIndex();
invalidate();
return Result.HANDLED;
}
return super.handleKeyStroke(keyStroke);
}
示例12: readKeyStroke
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
protected synchronized KeyStroke readKeyStroke() throws IOException {
KeyStroke keyStroke = super.pollInput();
if(eofWhenNoWindows && keyStroke == null && windows.isEmpty()) {
return new KeyStroke(KeyType.EOF);
}
else if(keyStroke != null) {
return keyStroke;
}
else {
return super.readKeyStroke();
}
}
示例13: filter
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
private KeyStroke filter(KeyStroke keyStroke) throws IOException {
if(keyStroke == null) {
return null;
}
else if(keyStroke.isCtrlDown() && keyStroke.getKeyType() == KeyType.ArrowLeft) {
if(viewportTopLeft.getColumn() > 0) {
viewportTopLeft = viewportTopLeft.withRelativeColumn(-1);
refresh();
}
return null;
}
else if(keyStroke.isCtrlDown() && keyStroke.getKeyType() == KeyType.ArrowRight) {
if(viewportTopLeft.getColumn() + viewportSize.getColumns() < getTerminalSize().getColumns()) {
viewportTopLeft = viewportTopLeft.withRelativeColumn(1);
refresh();
}
return null;
}
else if(keyStroke.isCtrlDown() && keyStroke.getKeyType() == KeyType.ArrowUp) {
if(viewportTopLeft.getRow() > 0) {
viewportTopLeft = viewportTopLeft.withRelativeRow(-1);
realScreen.scrollLines(0,viewportSize.getRows()-1,-1);
refresh();
}
return null;
}
else if(keyStroke.isCtrlDown() && keyStroke.getKeyType() == KeyType.ArrowDown) {
if(viewportTopLeft.getRow() + viewportSize.getRows() < getTerminalSize().getRows()) {
viewportTopLeft = viewportTopLeft.withRelativeRow(1);
realScreen.scrollLines(0,viewportSize.getRows()-1,1);
refresh();
}
return null;
}
return keyStroke;
}
示例14: pollInput
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
@Override
public KeyStroke pollInput() {
if(disposed) {
return new KeyStroke(KeyType.EOF);
}
KeyStroke keyStroke = swingTerminal.pollInput();
if(autoCloseTrigger == AutoCloseTrigger.CloseOnEscape &&
keyStroke != null &&
keyStroke.getKeyType() == KeyType.Escape) {
dispose();
}
return keyStroke;
}
示例15: VirtualScreenTest
import com.googlecode.lanterna.input.KeyType; //导入依赖的package包/类
public VirtualScreenTest(String[] args) throws InterruptedException, IOException {
Screen screen = new TestTerminalFactory(args).createScreen();
screen = new VirtualScreen(screen);
screen.startScreen();
TextGraphics textGraphics = screen.newTextGraphics();
textGraphics.setBackgroundColor(TextColor.ANSI.GREEN);
textGraphics.fillTriangle(new TerminalPosition(40, 0), new TerminalPosition(25,19), new TerminalPosition(65, 19), ' ');
textGraphics.setBackgroundColor(TextColor.ANSI.RED);
textGraphics.drawRectangle(TerminalPosition.TOP_LEFT_CORNER, screen.getTerminalSize(), ' ');
screen.refresh();
while(true) {
KeyStroke keyStroke = screen.pollInput();
if(keyStroke != null) {
if(keyStroke.getKeyType() == KeyType.Escape) {
break;
}
}
else if(screen.doResizeIfNecessary() != null) {
screen.refresh();
}
else {
Thread.sleep(1);
}
}
screen.stopScreen();
}