0
例如,我創建了一個標有「1」的按鈕。無論何時按下此按鈕,1都會附加到textField。不過,只需在我的鍵盤上輸入1,我就可以將1添加到textField。當這樣做時,我想通過按鈕來獲取視圖,就好像它被按下而不是如果一個鍵。 我一直在想吳丹可能是它有可能以這種方式來管理這個問題:按下鍵盤上相應鍵時如何按下按鈕? JavaFX
rootNode.setOnKeyTyped(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
textField.appendText(event.getCharacter());
if(event.getCharacter().equals("1")){
// here button should be pressed
}
}
});
有一些方法,可以改變按鈕的外觀? 感謝提前。
@James_D,你的程序工作正常,但我connt將你的解決方案應用到我的程序。也許是因爲我定製了我的按鈕。看看我的代碼的一部分:
HashMap<String, Button> buttons = new HashMap<>();
int btnVal = 1;
for(int j = 5 ; j >= 3; j --){
for(int i = 1; i <= 3; i ++){
Button btn = createNumberButton(Integer.toString(btnVal++), inputField, i, j);
rootNode.getChildren().add(btn);
buttons.put(Integer.toString(btnVal), btn);
}
}
rootNode.setOnKeyPressed(event -> {
Button btn = buttons.get(event.getText());
if (btn != null) {
System.out.println(event.getText());
btn.arm();
inputField.appendText(event.getText());
}
});
rootNode.setOnKeyReleased(event -> {
Button btn = buttons.get(event.getText());
if (btn != null) {
btn.disarm();
}
});
可能重複:http://stackoverflow.com/questions/4753004/how-do-i-programatically-send-actionevent-to-jbutton –
@BhavikPatel這是JavaFX和不擺動。 – NwDev
調用'button.setPressed(true);'不起作用? –