Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Help needed! JavaFX package mouserollover; import static com.sun.glass.events.Wi

ID: 3712924 • Letter: H

Question

Help needed!

JavaFX

package mouserollover;

import static com.sun.glass.events.WindowEvent.MAXIMIZE;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;

public class MouseRollover extends Application
{

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

@Override
public void start(Stage primaryStage)
{
final double SCENE_WIDTH = 500.0;
final double SCENE_HEIGHT = 500.0;

Image balloonImage = new Image("file:HotAirBalloon.jpg");
Image flowerImage = new Image("file:flower.jpg");
  
ImageView myImageView = new ImageView(flowerImage);
myImageView.setFitWidth(200);
myImageView.setPreserveRatio(true);
  
myImageView.setOnMouseEntered(event ->
{
myImageView = new ImageView(balloonImage);
});
  
myImageView.setOnMouseExited(event ->
{
myImageView = new ImageView(flowerImage);
});

Pane pane = new Pane(myImageView);

Scene scene = new Scene(pane, SCENE_WIDTH, SCENE_HEIGHT);
primaryStage.setScene(scene);
primaryStage.show();
}
}

Explanation / Answer

package mouserollover;

import static com.sun.glass.events.WindowEvent.MAXIMIZE;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;

public class MouseRollover extends Application
{

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

   @Override
   public void start(Stage primaryStage)
   {
      final double SCENE_WIDTH = 500.0;
      final double SCENE_HEIGHT = 500.0;
     
      final Image balloonImage = new Image("file:HotAirBalloon.jpg"); //variables referenced in lambda expression must be final
      final Image flowerImage = new Image("file:flower.jpg");//variables referenced in lambda expression must be final
    
      final ImageView myImageView = new ImageView(flowerImage);//variables referenced in lambda expression must be final
      myImageView.setFitWidth(200);
      myImageView.setPreserveRatio(true);
    
    
      myImageView.setOnMouseEntered(event ->
      {
        myImageView.setImage(balloonImage); //as we cannot directly modify final variables use setImage mathod
      });
    
      myImageView.setOnMouseExited(event ->
      {
        myImageView.setImage(flowerImage); //as we cannot directly modify final variables use setImage mathod
      });

      Pane pane = new Pane(myImageView);

      Scene scene = new Scene(pane, SCENE_WIDTH, SCENE_HEIGHT);
      primaryStage.setScene(scene);
      primaryStage.show();
   }

}