Java FXML密钥组合示例需要

时间:2017-04-14 21:20:27

标签: javafx

我正在使用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");
    }
}

1 个答案:

答案 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";