J'utilise Java 8. J'ai une barre d'outils et des boutons dessus.
Je souhaite implémenter les éléments suivants:
Comment faire via css?
Utilisez les styles pour supprimer l'arrière-plan:
.button {
-fx-background-color: transparent;
}
En survol, pour tout ramener, utilisez simplement le style de bouton de modena.css
:
.button:hover{
-fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
-fx-background-insets: 0 0 -1 0, 0, 1, 2;
-fx-background-radius: 3px, 3px, 2px, 1px;
-fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
-fx-text-fill: -fx-text-base-color;
-fx-alignment: CENTER;
-fx-content-display: LEFT;
}
La transparence de l'arrière-plan peut être contrôlée via des écouteurs de souris, c'est-à-dire en définissant le CSS par programmation (ce qui réduit le besoin d'une feuille de style externe):
final String IDLE_BUTTON_STYLE = "-fx-background-color: transparent;";
final String HOVERED_BUTTON_STYLE = "-fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;";
button.setStyle(IDLE_BUTTON_STYLE);
button.setOnMouseEntered(e -> button.setStyle(HOVERED_BUTTON_STYLE));
button.setOnMouseExited(e -> button.setStyle(IDLE_BUTTON_STYLE));
Je suis d'accord avec netzwerg. Si vous utilisez fxml avec javafx, vous devez inclure ces lignes de codes dans la méthode initialize () de votre classe de contrôleur.
Exemple de classe de contrôleur:
public class Controller implements Initializable{
private Button test;
private static final String IDLE_BUTTON_STYLE = "-fx-background-color: transparent;";
private static final String HOVERED_BUTTON_STYLE = "-fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;";
@Override
public void initialize(URL location, ResourceBundle resources) {
button.setStyle(IDLE_BUTTON_STYLE);
button.setOnMouseEntered(e -> button.setStyle(HOVERED_BUTTON_STYLE));
button.setOnMouseExited(e -> button.setStyle(IDLE_BUTTON_STYLE));
}
}