已使用JavaFX KeyPressed事件,仍在Textfield中

原学程将引见已应用JavaFX KeyPressed事宜,仍在Textfield中的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

已使用JavaFX KeyPressed事件,仍在Textfield中 教程 第1张

成绩描写

我用JavaFX制造了1个简略的乒乓球游戏。但是,我在树立控件时碰到了成绩。我应用的文原字段以下:

control_0.setOnKeyPressed(new EventHandler<KeyEvent>()
  {
@Override
public void handle(KeyEvent ke)
{
 control_0.setText(ke.getCode().toString());
 om.setControls(0,ke.getCode().toString());
 ke.consume();
}
  });

然则,每一当按下键进字符的键时,它便会像so:ss1样在Textfield中复制。
将Handle()代码调换为

control_0.setText("");
om.setControls(0,ke.getCode().toString());

担任处置这1面,然则箭头键以及相似键在Textfield中没有显示所有实质(虽然它们在游戏中不妨任务)。怎样处理此成绩/分歧性成绩?

推举谜底

您现实上仿佛没有须要TextField。您只需将TextField调换为Label并将事宜处置法式添减到Scene

然则,假如您保持应用TextField,您不妨对于一切KeyEvent应用事宜挑选器,以避免事宜到达修正TextField

的文原的默许EventHandler

control_0.addEventFilter(KeyEvent.ANY, evt -> {
 if (evt.getEventType() == KeyEvent.KEY_PRESSED) {
  control_0.setText(evt.getCode().toString());
 }
 evt.consume();
});

佳了闭于已应用JavaFX KeyPressed事宜,仍在Textfield中的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。