Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'IDE Eclipse - Projet Application JavaFX

Besoins d'une aide

    4 juillet 2023 à 18:23:07

    Bonjour à tous, 

    J'ai un très gros soucis avec mon IDE. Je suis actuellement sur un projet de réalisation d'une application en JavaFX. Le but étant de créer une sorte d'appli qui permette de choisir une image d'y appliquer un filtre parmis une liste et de pouvoir la télécharger. Bref, là n'est pas le soucis. Mon application est codé.

    Première class ImageFilterApp :

    package application;
    	
    import javafx.application.Application;
    import javafx.embed.swing.SwingFXUtils;
    import javafx.scene.Scene;
    import javafx.scene.canvas.Canvas;
    import javafx.scene.canvas.GraphicsContext;
    import javafx.scene.control.Button;
    import javafx.scene.control.ScrollPane;
    import javafx.scene.image.Image;
    import javafx.scene.image.ImageView;
    import javafx.scene.image.WritableImage;
    import javafx.scene.layout.HBox;
    import javafx.scene.layout.VBox;
    import javafx.stage.FileChooser;
    import javafx.stage.Stage;
    
    import java.io.File;
    import java.io.IOException;
    
    import javax.imageio.ImageIO;
    
    public class ImageFilterApp extends Application {
    
        @Override
        public void start(Stage primaryStage) throws Exception {
            VBox root = new VBox(10);
    
            ImageView imageView = new ImageView();
            imageView.setFitWidth(500);
            imageView.setFitHeight(500);
            imageView.setPreserveRatio(true);
    
            ScrollPane filterPane = new ScrollPane();
            HBox filterBox = new HBox(10);
    
            ImageView redFilterView = new ImageView(new Image("/default_image.png"));
            redFilterView.setEffect(Filters.RED_TONE);
            redFilterView.setOnMouseClicked(event -> imageView.setEffect(Filters.RED_TONE));
            filterBox.getChildren().add(redFilterView);
    
            ImageView blueFilterView = new ImageView(new Image("/default_image.png"));
            blueFilterView.setEffect(Filters.BLUE_TONE);
            blueFilterView.setOnMouseClicked(event -> imageView.setEffect(Filters.BLUE_TONE));
            filterBox.getChildren().add(blueFilterView);
    
            ImageView sepiaFilterView = new ImageView(new Image("/default_image.png"));
            sepiaFilterView.setEffect(Filters.SEPIA_TONE);
            sepiaFilterView.setOnMouseClicked(event -> imageView.setEffect(Filters.SEPIA_TONE));
            filterBox.getChildren().add(sepiaFilterView);
            
            filterPane.setContent(filterBox);
    
            Button selectImageButton = new Button("Select Image");
            selectImageButton.setOnAction(event -> {
                FileChooser fileChooser = new FileChooser();
                fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Image Files", "*.png", "*.jpg", "*.jpeg"));
                File selectedFile = fileChooser.showOpenDialog(primaryStage);
                if (selectedFile != null) {
                    Image image = new Image(selectedFile.toURI().toString());
                    imageView.setImage(image);
                    imageView.setEffect(null);
                }
            });
    
            Button saveButton = new Button("Save Image");
            saveButton.setOnAction(event -> {
                FileChooser saveFileChooser = new FileChooser();
                saveFileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Image Files", "*.png"));
                File saveFile = saveFileChooser.showSaveDialog(primaryStage);
                if (saveFile != null) {
                    try {
                        // Draw the ImageView to a Canvas
                        Canvas canvas = new Canvas(imageView.getFitWidth(), imageView.getFitHeight());
                        GraphicsContext graphicsContext = canvas.getGraphicsContext2D();
                        graphicsContext.setEffect(imageView.getEffect());
                        graphicsContext.drawImage(imageView.getImage(), 0, 0);
    
                        // Write the Canvas content to an Image
                        WritableImage writableImage = new WritableImage((int) canvas.getWidth(), (int) canvas.getHeight());
                        canvas.snapshot(null, writableImage);
    
                        // Save the Image
                        ImageIO.write(SwingFXUtils.fromFXImage(writableImage, null), "png", saveFile);
                    } catch (IOException ex) {
                        System.err.println("Error saving image");
                        ex.printStackTrace();
                    }
                }
            });
    
            ScrollPane imagePane = new ScrollPane(imageView);
            root.getChildren().addAll(imagePane, filterPane, selectImageButton, saveButton);
    
            Scene scene = new Scene(root, 800, 600);
            scene.getStylesheets().add("/application.css");
            primaryStage.setScene(scene);
            primaryStage.setTitle("Image Filter Application");
            primaryStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }

    Deuxième class Filters :

    package application;
    
    import javafx.scene.effect.ColorAdjust;
    
    public class Filters {
        public static final ColorAdjust RED_TONE;
        public static final ColorAdjust BLUE_TONE;
        public static final ColorAdjust SEPIA_TONE;
        
        static {
            RED_TONE = new ColorAdjust();
            RED_TONE.setHue(-0.05);
    
            BLUE_TONE = new ColorAdjust();
            BLUE_TONE.setHue(-0.7);
    
            SEPIA_TONE = new ColorAdjust();
            SEPIA_TONE.setHue(-0.15);
            SEPIA_TONE.setSaturation(.4);
            SEPIA_TONE.setBrightness(0.10);
        }
    }


    Je pense qu'elle est correctement codé, simplement, je n'arrive pas à la lancer. Je m'explique, lorsque j'essaye de la lancer, voici ce que j'ai :

    Eclipse fait comme si il y avait lancement, un dossier s'affiche dans mon dock, mais rien ne se passe, le dossier "Java" s'affiche.

    Je vois bien un lancement d'app car il y a bien un PID avec le lien vers le JDK... Je ne comprend pas ce qu'il se passe. Un énorme bug que je ne saurais expliquer étant seulement en deuxième année d'informatique à l'université de Lorraine.

    Je précise aussi que le dossier Res est bien dans le BuildPath et que tout a été contrôler concernant les erreurs de bases qui aurait pu influencer ou créer ce bug.

    - Nettoyage et reconstruction du projet : Check

    - Redémarrage d'Eclipse : Check

    - Vérification du JDK : Check

    - Consultez le journal des erreurs d'Eclipse : Check

    Voici les caractéristique de mon Mac :

    Je n'ai aucune erreur de compilation qui survient. Je ne sais réellement pas d'où peut provenir le soucis. Je vous serais très reconnaissant de m'aider pour que je puisse tester mon programme et/ou voir s'il y a des erreurs au moins.

    • Partager sur Facebook
    • Partager sur Twitter

    Problème d'IDE Eclipse - Projet Application JavaFX

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown