JavaFx: как сделать кликабельное изображение с помощью scenebuilder

2

Я хотел знать, как сделать кликабельное изображение с помощью ImageView, которое приведет меня к другому FXML, используя конструктор сцен. Я использую Eclipse IDE.

Теги:
javafx
desktop-application
scenebuilder

3 ответа

4
Лучший ответ

Я никогда не использовал setOnMouseClicked(EventHandler<MouseEvent> event), но вы можете просто вызвать setOnMouseClicked(EventHandler<MouseEvent> event) в объекте ImageView.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class ImageClickExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        ImageView img = new ImageView("http://i.stack.imgur.com/oURrw.png");
        img.setPickOnBounds(true); // allows click on transparent areas
        img.setOnMouseClicked((MouseEvent e) -> {
            System.out.println("Clicked!"); // change functionality
        });
        Scene scene = new Scene(new StackPane(img));
        primaryStage.setTitle("Image Click Example");
        primaryStage.setScene(scene);
        primaryStage.sizeToScene();
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}
1

1) Создайте Button или (Label ) в SceneBuilder

2) Добавьте ImageView в Button с помощью SceneBuilder

Релевантный вопрос: здесь

3) Используйте CSS:

Изображение 174551

    1)Inside the 'SceneBuilder' or

    2)Using an external css file(with styleclass or with css id) as shown above i have added all the three ways(choose one :) ):

  .crazyButton{
      -fx-background-color:transparent;
      -fx-border-color:transparent;
      -fx-text-fill:transparent;    
  }

  or


  #myButton{
     -fx-background-color:transparent;
     -fx-border-color:transparent;
     -fx-text-fill:transparent;    
  }

Здесь вы можете играть с помощью метода setPickOnBounds(true/false); если вы хотите, чтобы прозрачные области Button получали события кликов.

4) Добавить ActionListener или MouseListener к Button с помощью SceneBuilder или простой Java Code


0

Давайте начнем с создания сцены, откройте файл fxml. Drag-and-drop ImageView из библиотеки Scenebuilder (правая панель). После добавления выберите ImageView и дайте ему fx: id "iView" в этом случае, затем перейдите в раздел "Код" и добавьте имя функции в поле OnMouseClicked. Я назвал свою функцию "LoginUser".

: Изображение 174551

Теперь откройте файл контроллера в Eclipse IDE.

определить функцию с тегом @FXML:

@FXML
private boolean LoginUser() throws ClassNotFoundException {
    Stage mainStage = (Stage) iView.getScene().getWindow();

    try {
            Parent root = FXMLLoader.load(getClass().getResource("file.fxml"));
            Scene scene = new Scene(root);
            mainStage.setScene(scene);
            mainStage.setTitle("Test Window");
        }
            catch(Exception e){}
}

Загрузите файл fxml, который вы хотите на клик изображения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню