diff --git a/IHM/.vscode/settings.json b/IHM/.vscode/settings.json
new file mode 100644
index 0000000000000000000000000000000000000000..c995aa5cefc39b8d1744799a04f27ee68d687c6b
--- /dev/null
+++ b/IHM/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+    "java.debug.settings.onBuildFailureProceed": true
+}
\ No newline at end of file
diff --git a/IHM/demo/.vscode/settings.json b/IHM/demo/.vscode/settings.json
new file mode 100644
index 0000000000000000000000000000000000000000..c995aa5cefc39b8d1744799a04f27ee68d687c6b
--- /dev/null
+++ b/IHM/demo/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+    "java.debug.settings.onBuildFailureProceed": true
+}
\ No newline at end of file
diff --git a/IHM/demo/pom.xml b/IHM/demo/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..563caa90a66470ec44626795eb99abf2c2a33508
--- /dev/null
+++ b/IHM/demo/pom.xml
@@ -0,0 +1,51 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.example</groupId>
+    <artifactId>demo</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-controls</artifactId>
+            <version>13</version>
+        </dependency>
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-fxml</artifactId>
+            <version>13</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.0</version>
+                <configuration>
+                    <release>11</release>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.openjfx</groupId>
+                <artifactId>javafx-maven-plugin</artifactId>
+                <version>0.0.6</version>
+                <executions>
+                    <execution>
+                        <!-- Default configuration for running -->
+                        <!-- Usage: mvn clean javafx:run -->
+                        <id>default-cli</id>
+                        <configuration>
+                            <mainClass>com.example.App</mainClass>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/IHM/demo/src/main/java/com/example/App.java b/IHM/demo/src/main/java/com/example/App.java
new file mode 100644
index 0000000000000000000000000000000000000000..339c80c8ab9565d0746aeac960b87ca9c8f0c0ce
--- /dev/null
+++ b/IHM/demo/src/main/java/com/example/App.java
@@ -0,0 +1,38 @@
+package com.example;
+
+import javafx.application.Application;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.stage.Stage;
+
+import java.io.IOException;
+
+/**
+ * JavaFX App
+ */
+public class App extends Application {
+
+    private static Scene scene;
+
+    @Override
+    public void start(Stage stage) throws IOException {
+        scene = new Scene(loadFXML("primary"), 640, 480);
+        stage.setScene(scene);
+        stage.show();
+    }
+
+    static void setRoot(String fxml) throws IOException {
+        scene.setRoot(loadFXML(fxml));
+    }
+
+    private static Parent loadFXML(String fxml) throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource(fxml + ".fxml"));
+        return fxmlLoader.load();
+    }
+
+    public static void main(String[] args) {
+        launch();
+    }
+
+}
\ No newline at end of file
diff --git a/IHM/demo/src/main/java/com/example/PrimaryController.java b/IHM/demo/src/main/java/com/example/PrimaryController.java
new file mode 100644
index 0000000000000000000000000000000000000000..a23d23c7c21e281e19f3440606019933985989a0
--- /dev/null
+++ b/IHM/demo/src/main/java/com/example/PrimaryController.java
@@ -0,0 +1,12 @@
+package com.example;
+
+import java.io.IOException;
+import javafx.fxml.FXML;
+
+public class PrimaryController {
+
+    @FXML
+    private void switchToSecondary() throws IOException {
+        App.setRoot("secondary");
+    }
+}
diff --git a/IHM/demo/src/main/java/com/example/SecondaryController.java b/IHM/demo/src/main/java/com/example/SecondaryController.java
new file mode 100644
index 0000000000000000000000000000000000000000..4cbf23dc1ef8bb049c04f2a0b419564ba6ae6cae
--- /dev/null
+++ b/IHM/demo/src/main/java/com/example/SecondaryController.java
@@ -0,0 +1,12 @@
+package com.example;
+
+import java.io.IOException;
+import javafx.fxml.FXML;
+
+public class SecondaryController {
+
+    @FXML
+    private void switchToPrimary() throws IOException {
+        App.setRoot("primary");
+    }
+}
\ No newline at end of file
diff --git a/IHM/demo/src/main/java/module-info.java b/IHM/demo/src/main/java/module-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..ec60d07cadeed3543381930af530c76d812d7320
--- /dev/null
+++ b/IHM/demo/src/main/java/module-info.java
@@ -0,0 +1,9 @@
+module com.example {
+    requires javafx.controls;
+    requires javafx.fxml;
+
+    opens com.example to javafx.fxml;
+    exports com.example;
+    exports tp01;
+    exports tp02;
+}
diff --git a/IHM/demo/src/main/java/tp01/SimpleScene.java b/IHM/demo/src/main/java/tp01/SimpleScene.java
new file mode 100644
index 0000000000000000000000000000000000000000..025b0b06e760632eb12a5223e88e2ee5bca68bb1
--- /dev/null
+++ b/IHM/demo/src/main/java/tp01/SimpleScene.java
@@ -0,0 +1,64 @@
+package tp01;
+import javafx.application.Application;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.Menu;
+import javafx.scene.control.MenuBar;
+import javafx.scene.control.MenuItem;
+import javafx.scene.control.SeparatorMenuItem;
+import javafx.scene.control.ToolBar;
+import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.FlowPane;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.VBox;
+import javafx.stage.Stage;
+
+public class app_nico extends Application {
+
+  public void start(Stage stage) {
+    BorderPane root = new BorderPane();
+
+    MenuBar bar = new MenuBar();
+    final Menu menu_fichier = new Menu("Fichier");
+    menu_fichier.getItems().add(new MenuItem("Nouveau"));
+    menu_fichier.getItems().add(new MenuItem("Ouvrir"));
+    menu_fichier.getItems().add(new MenuItem("Enregistrer"));
+    menu_fichier.getItems().add(new MenuItem("Enregistrer sous"));
+    menu_fichier.getItems().add(new SeparatorMenuItem());
+    menu_fichier.getItems().add(new MenuItem("Mise en page"));
+    menu_fichier.getItems().add(new MenuItem("Imprimer"));
+    menu_fichier.getItems().add(new SeparatorMenuItem());
+    menu_fichier.getItems().add(new MenuItem("Quitter"));
+    final Menu menu_edition = new Menu("Edition");
+
+    MenuBar menu = new MenuBar(menu_fichier, menu_edition);
+
+    TextArea zone_de_texte = new TextArea("Lorem Ipsum");
+
+    label rechercher = new Label("Rechercher: ");
+
+    TextField recherche = new Label();
+
+    Image previousImage = new Image("file:///home/infoetu/aymeri.tourneur.etu/T%C3%A9l%C3%A9chargements/previous_motif.gif");
+    Image nextImage = new Image("file:///home/infoetu/aymeri.tourneur.etu/T%C3%A9l%C3%A9chargements/next_motif.gif");
+    ImageView previous = new ImageView(previousImage);
+    ImageView next = new ImageView(nextImage);
+
+    Button surligner = new Button("Tout surligner");
+
+    HBox hbox = new HBox(rechercher, recherche, previous, next, surligner);
+
+    root.setBottom()
+
+
+
+
+
+
+}
+
+  public static void main(String[] args) {
+    Application.launch(args);
+  }
+}
\ No newline at end of file
diff --git a/IHM/demo/src/main/java/tp02/HelloPaint.java b/IHM/demo/src/main/java/tp02/HelloPaint.java
new file mode 100644
index 0000000000000000000000000000000000000000..25ca0909df7d5360f979e6c75aa22d89e53db3d1
--- /dev/null
+++ b/IHM/demo/src/main/java/tp02/HelloPaint.java
@@ -0,0 +1,75 @@
+package tp02;
+
+import java.util.ArrayList;
+
+import javafx.application.Application;
+import javafx.scene.Scene;
+import javafx.scene.canvas.Canvas;
+import javafx.scene.canvas.GraphicsContext;
+import javafx.scene.layout.VBox;
+import javafx.scene.paint.Color;
+import javafx.scene.shape.Rectangle;
+import javafx.stage.Stage;
+
+
+public class HelloPaint extends Application {
+
+    public void start(Stage stage) {
+            VBox root = new VBox();
+            Canvas canvas = new Canvas (1000, 1000);
+            ArrayList<Rectangle> memoire = new ArrayList<Rectangle>();
+            GraphicsContext gc = canvas.getGraphicsContext2D();
+            root.getChildren().add(canvas);
+
+            canvas.setOnMouseClicked( e -> {
+                double posx = e.getSceneX()-10;
+                double posy = e.getSceneY()-10;
+                Rectangle carre = new Rectangle(posx, posy, 20,20);
+                if (!e.isShiftDown()){
+                    gc.setFill(Color.ORANGE);
+                    gc.fillRect(posx, posy, 20, 20);
+                    gc.setStroke(Color.BLACK);
+                    gc.strokeRect(posx, posy, 20, 20);
+                    memoire.add(carre);
+                }
+                if (e.isShiftDown()){
+                    for (Rectangle elem : memoire){
+                        if (posx > elem.getX()-10 && posx < elem.getX()+10 && posy > elem.getY()-10 && posy < elem.getY()+10){
+                            memoire.remove(elem);
+                            gc.clearRect(0, 0, 1000, 1000);
+                            break;
+                        }
+                    }
+                    for (Rectangle elem : memoire){
+                        gc.setFill(Color.ORANGE);
+                        gc.fillRect(elem.getX(), elem.getY(), 20, 20);
+                        gc.setStroke(Color.BLACK);
+                        gc.strokeRect(elem.getX(), elem.getY(), 20, 20);
+                    }
+                }
+            });
+
+            canvas.setOnMouseMoved(e ->{
+                double posx = e.getSceneX()-10;
+                double posy = e.getSceneY()-10;
+                for (Rectangle elem : memoire){
+                    if (posx > elem.getX()-10 && posx < elem.getX()+10 && posy > elem.getY()-10 && posy < elem.getY()+10){
+                        gc.setFill(Color.RED);
+                        gc.fillRect(elem.getX(), elem.getY(), 20, 20);
+                    }else{
+                        gc.setFill(Color.ORANGE);
+                        gc.fillRect(elem.getX(), elem.getY(), 20, 20);
+                    }
+                }
+            });
+
+            Scene scene = new Scene(root);
+            stage.setTitle("Je suis la");
+            stage.setScene(scene);
+            stage.show();
+    }
+
+    public static void main(String[] args) {
+            Application.launch(args);
+    }
+}
\ No newline at end of file
diff --git a/IHM/demo/src/main/resources/com/example/primary.fxml b/IHM/demo/src/main/resources/com/example/primary.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..74677138c741e93611c0cdb9b993acd0df37a43d
--- /dev/null
+++ b/IHM/demo/src/main/resources/com/example/primary.fxml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.Button?>
+<?import javafx.geometry.Insets?>
+
+<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.PrimaryController">
+   <children>
+      <Label text="Primary View" />
+      <Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
+   </children>
+   <padding>
+      <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+   </padding>
+</VBox>
diff --git a/IHM/demo/src/main/resources/com/example/secondary.fxml b/IHM/demo/src/main/resources/com/example/secondary.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..402e529e93fe0a5e17261fb90cd37b0a57e4cd08
--- /dev/null
+++ b/IHM/demo/src/main/resources/com/example/secondary.fxml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.Button?>
+<?import javafx.geometry.Insets?>
+
+<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.SecondaryController">
+    <children>
+        <Label text="Secondary View" />
+        <Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
+    </children>
+    <padding>
+        <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+    </padding>
+</VBox>
diff --git a/IHM/demo/target/classes/com/example/App.class b/IHM/demo/target/classes/com/example/App.class
new file mode 100644
index 0000000000000000000000000000000000000000..5ef718a964a9eb07edcf8bf6aabc4ade9cfc71c1
Binary files /dev/null and b/IHM/demo/target/classes/com/example/App.class differ
diff --git a/IHM/demo/target/classes/com/example/PrimaryController.class b/IHM/demo/target/classes/com/example/PrimaryController.class
new file mode 100644
index 0000000000000000000000000000000000000000..d81945d545c56a2a16b78ed7a4ee84f86dcdd5f6
Binary files /dev/null and b/IHM/demo/target/classes/com/example/PrimaryController.class differ
diff --git a/IHM/demo/target/classes/com/example/SecondaryController.class b/IHM/demo/target/classes/com/example/SecondaryController.class
new file mode 100644
index 0000000000000000000000000000000000000000..30c3cb08202be51cec8f05920b0e407e49cf0f4e
Binary files /dev/null and b/IHM/demo/target/classes/com/example/SecondaryController.class differ
diff --git a/IHM/demo/target/classes/com/example/primary.fxml b/IHM/demo/target/classes/com/example/primary.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..74677138c741e93611c0cdb9b993acd0df37a43d
--- /dev/null
+++ b/IHM/demo/target/classes/com/example/primary.fxml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.Button?>
+<?import javafx.geometry.Insets?>
+
+<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.PrimaryController">
+   <children>
+      <Label text="Primary View" />
+      <Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
+   </children>
+   <padding>
+      <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+   </padding>
+</VBox>
diff --git a/IHM/demo/target/classes/com/example/secondary.fxml b/IHM/demo/target/classes/com/example/secondary.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..402e529e93fe0a5e17261fb90cd37b0a57e4cd08
--- /dev/null
+++ b/IHM/demo/target/classes/com/example/secondary.fxml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.Button?>
+<?import javafx.geometry.Insets?>
+
+<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.SecondaryController">
+    <children>
+        <Label text="Secondary View" />
+        <Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
+    </children>
+    <padding>
+        <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+    </padding>
+</VBox>
diff --git a/IHM/demo/target/classes/module-info.class b/IHM/demo/target/classes/module-info.class
new file mode 100644
index 0000000000000000000000000000000000000000..d38c0200ee7d97c8f7a48524bb4120250320ca1b
Binary files /dev/null and b/IHM/demo/target/classes/module-info.class differ
diff --git a/IHM/demo/target/classes/tp01/app_nico.class b/IHM/demo/target/classes/tp01/app_nico.class
new file mode 100644
index 0000000000000000000000000000000000000000..f808947047b84db623f11d507cf7ad663afb2046
Binary files /dev/null and b/IHM/demo/target/classes/tp01/app_nico.class differ
diff --git a/IHM/demo/target/classes/tp02/HelloPaint.class b/IHM/demo/target/classes/tp02/HelloPaint.class
new file mode 100644
index 0000000000000000000000000000000000000000..d1eb0c2f8974538d5eed26fd576f28ad1f3ab1f3
Binary files /dev/null and b/IHM/demo/target/classes/tp02/HelloPaint.class differ