0
我已經問了類似的問題here。答案是正確的,但似乎它不適用於我的情況。看看我的代碼:如何按下鍵盤上的按鍵時更改按鈕的外觀。 JavaFx
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
FlowPane root = new FlowPane();
root.setPadding(new Insets(40, 40, 40, 40));
Button btn = new Button("NEW BUTTON");
btn.setId("button");
root.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
btn.arm();
}
});
root.setOnKeyReleased(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
btn.disarm();
}
});
root.getChildren().addAll(btn);
primaryStage.setScene(new Scene(root, 310, 200));
primaryStage.getScene().getStylesheets().add("style.css");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
然後我指定的樣式表:
#button {
-fx-background-color: #403e40;
-fx-border-width: 0;
-fx-font-size: 30px;
-fx-text-fill: #b3b1b3;
-fx-background-radius: 0;
}
#button:hover {
-fx-background-color: #595759;
}
#button:pressed {
-fx-background-color: #ffffff;
-fx-text-fill: #403e40;
}
而在最後,這是行不通的。我非常沮喪。它工作得很好,如果.css文件沒有鏈接,並且無法正常工作。那麼,如果按下自定義視圖的按鍵,是否可以改變按鈕的外觀?