我正在使用Java FXML构建计算器应用程序。除了鼠标点击之外的更多功能,我想添加键盘按键功能,以便用户可以在键盘上键入数字或字符,使它们出现在计算器屏幕上。我正在使用MacBookPro,为了获得+符号,我需要按下组合键CMD和+键。我在下面尝试了以下方法,但它不起作用。只有转义和退格键才能正常运行。即使我只是尝试检查 back_slash 和减去键,它们仍然无法正常工作。
任何人都可以帮助我如何仅在 Java FXML (包括Main.java,Controller.java和FXMLDocument.fxml)中创建工作密钥组合
public class FXML_MainController implements Initializable {
KeyCombination plus = new KeyCodeCombination(KeyCode.PLUS, KeyCombination.SHORTCUT_DOWN);
@FXML
private Label displayTextBottom;
@FXML
void btnOnKeyPressed(KeyEvent event) {
if (plus.match(event)) {
displayTextBottom.setText(event.getText());
System.out.println("+ pressed");
event.consume();
}
switch (event.getCode()) {
case SLASH:
displayTextBottom.setText(event.getText());
break;
case MINUS:
displayTextBottom.setText(event.getText());
break;
case ESCAPE:
displayTextBottom.setText("");
break;
case BACK_SPACE:
if (displayTextBottom.getText().length() > 0) {
StringBuilder removing = new StringBuilder(displayTextBottom.getText());
removing.deleteCharAt(displayTextBottom.getText().length() - 1);
String removed = removing.toString();
displayTextBottom.setText(removed);
setDisplayFontSizeBottom();
}
break;
default:
System.out.println("error");
}
}
答案 0 :(得分:1)
以这种方式将SLASH替换为DIVIDE,MINUS to SUBTRACT并更改代码,然后立即尝试。
$userIds = [];
foreach($prevUser as $key => $value){
$userIds[] = $value['user_id'];
}
// stores all user_id on single array and then fire query like below
//write your query here like "select * from user where id IN $userIds";