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();
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.