Я работаю над программой, в которой мне нужно нарисовать два изображения красным, когда я навешиваю кнопку, которая их соединяет. Дело в том, что мне нужно сделать это, пока его ПРАВИЛЬНО, а не когда пользователь нажимает кнопку. Я использую FXML с CSS для стилизации, но я не вижу способа вызвать метод из: hover css.Как мне назвать метод зависания в FXML?
0
A
ответ
1
В контроллере вы можете сделать
private 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);
});
}
Тогда в CSS вы можете сделать
#someNode1, #someNode2 {
// regular styles
}
#someNode1:highlight, #someNode2:highlight {
// hover styles
}
Вот SSCCE:
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>
изюминка-на-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);
}
}
Не парит на кнопку:
висения на Кнопка:
Смежные вопросы
- 1. Как мне назвать этот метод?
- 2. Как мне назвать метод в C#?
- 3. Как мне назвать этот метод? (Objective C)
- 4. Как мне назвать метод в методе действий в контроллере - Ember
- 5. Как правильно назвать метод?
- 6. Как назвать метод
- 7. Как назвать метод модели?
- 8. как назвать метод потоков
- 9. Как назвать метод singleton?
- 10. как назвать метод владельца?
- 11. Как мне назвать javascript-функции в html?
- 12. Как мне назвать метод объекта Scala с использованием отражения?
- 13. Как мне назвать метод делегата, который возвращает флаг «continue»?
- 14. Как мне назвать этот метод без получения ошибки C2227?
- 15. Как мне назвать общий метод интерфейса из другого общего класса
- 16. Как мне назвать метод - (void) из метода - (IBaction)?
- 17. Как мне это назвать? Промежуточное?
- 18. Как мне назвать эти классы?
- 19. Как мне назвать папку макетов?
- 20. Как мне назвать развернутое приложение?
- 21. Как мне назвать классы CSS?
- 22. Как мне назвать эту функцию?
- 23. Как мне назвать событие рисования?
- 24. Как мне назвать свою сборку?
- 25. Как назвать этот простой метод?
- 26. Как правильно назвать этот метод?
- 27. Как назвать метод другого класса?
- 28. как назвать метод абстрактного класса?
- 29. Как мне назвать другие методы событий?
- 30. Как назвать метод __str__ dateutil.rrule.rrule
Это сработало отлично! Это займет немного времени, чтобы адаптировать его к моей программе, но это зависит от меня! У вас есть моя благодарность. – MundoPotus