Ich arbeite an einem Programm, in dem ich zwei Bilder rot malen muss, wenn ich den Mauszeiger über einen Knopf halte, der sie verbindet. Die Sache ist, dass ich dies während seiner HOVERING machen muss, nicht wenn der Benutzer auf die Schaltfläche klickt. Ich benutze FXML mit CSS für das Styling, aber ich sehe keine Möglichkeit, eine Methode aus dem: Hover von CSS aufzurufen.Wie rufe ich eine Methode aus dem Schweben in FXML?
0
A
Antwort
1
In Ihrem Controller können Sie
tunprivate final PseudoClass highlightImage = PseudoClass.getPseudoClass("highlight");
@FXML
private Node someNode1 ;
@FXML
private Node someNode2 ;
@FXML
private Button button ;
public void initialize() {
button.hoverProperty().addListener((obs, wasHovered, isNowHovered) -> {
someNode1.pseudoClassStateChanged(highlightImage, isNowHovered);
someNode2.pseudoClassStateChanged(highlightImage, isNowHovered);
});
}
Dann in der CSS Sie
#someNode1, #someNode2 {
// regular styles
}
#someNode1:highlight, #someNode2:highlight {
// hover styles
}
Hier ist ein SSCCE tun:
import javafx.css.PseudoClass;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.shape.Rectangle;
public class HighlightOnHoverController {
@FXML
private Rectangle leftRect ;
@FXML
private Rectangle rightRect ;
@FXML
private Button button ;
private final PseudoClass highlightRect = PseudoClass.getPseudoClass("highlight");
public void initialize() {
button.hoverProperty().addListener((obs, wasHovered, isNowHovered) -> {
leftRect.pseudoClassStateChanged(highlightRect, isNowHovered);
rightRect.pseudoClassStateChanged(highlightRect, isNowHovered);
});
}
@FXML
private void click() {
System.out.println("Button clicked");
}
}
HighlightOnHover.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.HBox?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.shape.Rectangle?>
<?import javafx.scene.control.Button?>
<HBox xmlns:fx="http://javafx.com/fxml/1" fx:controller="HighlightOnHoverController" spacing="20" alignment="CENTER">
<padding>
<Insets top="10" left="10" right="10" bottom="10" />
</padding>
<Rectangle fx:id="leftRect" styleClass="rect" width="50" height="50" />
<Button fx:id="button" text="Click Me" onAction="#click" />
<Rectangle fx:id="rightRect" styleClass="rect" width="50" height="50" />
</HBox>
Highlight-on-hover.css:
.rect {
-fx-fill: cornflowerblue ;
}
.rect:highlight {
-fx-fill: coral ;
}
HighlightOnHover.java:
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class HighlightOnHover extends Application {
@Override
public void start(Stage primaryStage) throws IOException {
Scene scene = new Scene(FXMLLoader.load(getClass().getResource("HighlightOnHover.fxml")));
scene.getStylesheets().add("highlight-on-hover.css");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Nicht auf die Schaltfläche schweben:
auf das Schweben Knopf:
Verwandte Themen
- 1. Wie rufe ich eine Entity-Methode aus Zweig
- 2. Wie rufe ich eine Java-Methode aus Perl6
- 3. Wie rufe ich eine RemoteObject-Methode aus ActionScript auf?
- 4. Wie rufe ich eine Electron API-Methode aus dem Renderer-Prozess?
- 5. Wie rufe ich eine dynamisch benannte Methode in Javascript auf?
- 6. Wie rufe ich eine Variable in einer anderen Methode auf?
- 7. Wie rufe ich eine Methode in application_controller auf?
- 8. WP7 MVVM Wie rufe ich mich.setfocus() aus dem ViewModel?
- 9. Wie rufe ich eine nicht statische Methode von einer statischen Methode aus einer anderen Klasse auf?
- 10. Wie rufe ich Redis StringSet() aus F #
- 11. Java-Wie rufe ich eine Methode mit einem Rückgabetyp
- 12. Wie rufe ich eine Methode im ParentDelegate eines Delegaten auf?
- 13. Wie rufe ich eine Controller-Methode von JQuery?
- 14. Wie rufe ich eine Methode auf, die ein Hashwert ist?
- 15. Wie rufe ich eine Scala-Objekt-Methode mit Reflektion auf?
- 16. Wie rufe ich eine abgeleitete Klassenmethode aus der Basisklasse auf?
- 17. Wie rufe ich eine F # -Funktion aus dem unmittelbaren Fenster von VS2010 auf
- 18. Wie rufe ich eine .NET Assembly aus C/C++ auf?
- 19. Wie rufe ich eine asynchrone Methode von einer nicht-asynchronen Methode auf?
- 20. Wie rufe ich eine nicht statische Methode von einer statischen Methode in C# auf?
- 21. Wie rufe ich kann
- 22. Wie rufe ich meine Methode von einer anderen Methode aus, die ich in meiner Klasse in Java habe?
- 23. Wie rufe ich eine Methode in einem besitzenden Objekt in C++ auf?
- 24. Wie rufe ich meine Methode von meinem Dienst an?
- 25. Wie rufe ich eine öffentliche Funktion in einer .NET-Klassenbibliothek aus Powershell
- 26. Wie rufe ich eine Methode, die eine InterruptedException in einem JButton ActionListner benötigt
- 27. Wie rufe ich eine andere Aufgabe in Rake
- 28. Wie rufe ich eine benutzerdefinierte Klasse in einer Aktivität auf?
- 29. Wie rufe ich die InsertionSort-Methode hier auf?
- 30. Wie füge ich neue fxml Controller
Es funktionierte perfekt! Es wird somo Arbeit brauchen, um es an mein Programm anzupassen, aber das liegt an mir! Du hast meine Dankbarkeit. – MundoPotus