From cec8b85d7d39a7f300d097d12db4682c67e8eb81 Mon Sep 17 00:00:00 2001 From: Nicolas ECKMAN <nicolas.eckman.etu@bouleau08.iut-infobio.priv.univ-lille1.fr> Date: Thu, 4 May 2023 18:04:40 +0200 Subject: [PATCH] pue --- IHM/.vscode/settings.json | 3 + IHM/demo/.vscode/settings.json | 3 + IHM/demo/pom.xml | 51 ++++++++++++ IHM/demo/src/main/java/com/example/App.java | 38 +++++++++ .../java/com/example/PrimaryController.java | 12 +++ .../java/com/example/SecondaryController.java | 12 +++ IHM/demo/src/main/java/module-info.java | 9 +++ IHM/demo/src/main/java/tp01/SimpleScene.java | 64 +++++++++++++++ IHM/demo/src/main/java/tp02/HelloPaint.java | 75 ++++++++++++++++++ .../main/resources/com/example/primary.fxml | 16 ++++ .../main/resources/com/example/secondary.fxml | 16 ++++ IHM/demo/target/classes/com/example/App.class | Bin 0 -> 1729 bytes .../com/example/PrimaryController.class | Bin 0 -> 575 bytes .../com/example/SecondaryController.class | Bin 0 -> 577 bytes .../target/classes/com/example/primary.fxml | 16 ++++ .../target/classes/com/example/secondary.fxml | 16 ++++ IHM/demo/target/classes/module-info.class | Bin 0 -> 263 bytes IHM/demo/target/classes/tp01/app_nico.class | Bin 0 -> 1883 bytes IHM/demo/target/classes/tp02/HelloPaint.class | Bin 0 -> 4397 bytes 19 files changed, 331 insertions(+) create mode 100644 IHM/.vscode/settings.json create mode 100644 IHM/demo/.vscode/settings.json create mode 100644 IHM/demo/pom.xml create mode 100644 IHM/demo/src/main/java/com/example/App.java create mode 100644 IHM/demo/src/main/java/com/example/PrimaryController.java create mode 100644 IHM/demo/src/main/java/com/example/SecondaryController.java create mode 100644 IHM/demo/src/main/java/module-info.java create mode 100644 IHM/demo/src/main/java/tp01/SimpleScene.java create mode 100644 IHM/demo/src/main/java/tp02/HelloPaint.java create mode 100644 IHM/demo/src/main/resources/com/example/primary.fxml create mode 100644 IHM/demo/src/main/resources/com/example/secondary.fxml create mode 100644 IHM/demo/target/classes/com/example/App.class create mode 100644 IHM/demo/target/classes/com/example/PrimaryController.class create mode 100644 IHM/demo/target/classes/com/example/SecondaryController.class create mode 100644 IHM/demo/target/classes/com/example/primary.fxml create mode 100644 IHM/demo/target/classes/com/example/secondary.fxml create mode 100644 IHM/demo/target/classes/module-info.class create mode 100644 IHM/demo/target/classes/tp01/app_nico.class create mode 100644 IHM/demo/target/classes/tp02/HelloPaint.class diff --git a/IHM/.vscode/settings.json b/IHM/.vscode/settings.json new file mode 100644 index 0000000..c995aa5 --- /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 0000000..c995aa5 --- /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 0000000..563caa9 --- /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 0000000..339c80c --- /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 0000000..a23d23c --- /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 0000000..4cbf23d --- /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 0000000..ec60d07 --- /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 0000000..025b0b0 --- /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 0000000..25ca090 --- /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 0000000..7467713 --- /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 0000000..402e529 --- /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 GIT binary patch literal 1729 zcmX^0Z`VEs1_pD640Z-4Mh5=m{9OIiip1Q4oK$_sf&z917DfiSti-a!v<m&if`XjP z<iwK9{5+5xjLpcvTAZAkm&(W>;saF)=IaN8M6DSa*laTMGE3|j8JIOR!x$M@obyvs zxfqxkxOo`Z88{dj_<b_-QvFJElTwR95|eUL85x9p@{<#D!V-%zL42qnOG!p%F(ZSZ z51JdTK@KQMEGl7S5Z8dapd>LpRX-R+T7xX*a;->CEdV*an4Lj{kwF;bQvJ+)eNTV5 z3_F7uBZCk~BCSFn$qO6|5{wM&1x1;;iA9xM42%p?JPgtdGK>ryIr)hxZV|pdj0~C( zoAq-N^V0Q$ONuh{(ycY&jsXRPen4VTYF>#on?nl&7_d3ifoTRV22lnjP*^B4GDtzp zfja=I$;Cx8jFW+pL6wJrm4S_mL7hR9ok0W1wIGi|yvxI&#h}f|z)_r90*(NbPyssx zENrbA1~NvMhd~b%2Q0-I`Q?y+Oh<`Hgu&K~4D7|JB|-W5C5#NB5O<>bHw@$x6CMUb z22(}`35W`GpMWBRC9NVi2NcVoutqV0oxzfkK@23ER-q44r4I^TpZvs>)FO5UYeoif zkQ}lWr_#)vl++?F23rPub_P2}1_5*xJPZyDj*JZKWr;bZss3q<3~CUUK}_*a%1TWx zfyNa?2pWA{3|0)zplC7TU~pw*VATV;2PEju!{EW-$;iN#SWu9fm%_-Pi)<iNHze|r z4TQSX8f1hw4}%YbFCzm-Nj^k9BZG(rrWR{127iV?c7^~(27ZLMoO2S3i+LD=7=jrY zxYJWhf>Mj~ON)|I85xvtJ0vf)L_ajh$C``5f*};-t1w0eL8x+=94JXxFhuY$L^4D% zGO&PBH@dr^!NtxH1I<Hd@yp1-1qvoej4?7uz_I{H5GgLL85vk|6EpJ|8N@WA!D^60 z3Y<0>8IpJyk{J>h8Q5|XOY@R57#Ua+i_(i38HBOuU}WG51_y#$Ca3`6a4aa$1BDoa zA_F4>GXnzyBLf#G>o71dure@$${hwq22KVB27Lxb21bym)^-N2jSLJ7Obk2>3=C{w zK|Tgv1_lNmFq@TukAWX-kN|@q0~3P~0|NsK10#bl*qB5Hb_ON}1_s6545E=j;yV~5 zMHpm7805DzC~js@(cZ+MvW-DadmDoe!U`b<76t|e5e88PQ3e?XF$M(&aj<n_5QCuB zF)%1H=rb5FFfwp37%~`PSZv9_1a=<xCI%I)9SoA&7>p5CaDk1IV&Gzs1{)3W2{(fo zgE<2OSX2hXzyt<1ur7_=3>J|>jJp}EBDHof*lcHT5^~wb;I@syYa4^#c7_li?QIO< z2N<F^z{3n;n;e4zgFM(ah(|P_wka@hFvK#%frCAsApuM?FqlDupM!ZXgY6E6M0B^S YFt9KvgH40Dor58TAr%}8X<&QP0qG2X&j0`b literal 0 HcmV?d00001 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 GIT binary patch literal 575 zcmX^0Z`VEs1_pBmId%pnMh4mB{9OIiip1Q4oK*dQqRiaHqDtrdypp2)oSf7mb_Nzk z27#=^vPAuy#JqHU|D>$c<Pt^(Hk-`6%o00B24)S-Fh&Lz=lqmZE(T@>P96qU1~x_p zexJ;|RKL>Pq|~C2#H5^5Mg}3D{N%)(u*9NF5FaYYQj(Eb%*Y_`gVzz(j0}Rs<(VbP z86o+>smb|yDTzguj0{|^70IauC7Jno#q11%j10nHXJ+Q>d-}s=7#SpkO7luGb5p}I zi!+mQQXTX1@=FrInm}#>X-TWlPpiny(RYjR^|9t)5M^ZGEQZ;_#URcg$<83b$iR>6 zM8|>x9tJ4}X+{S2;?$C${QMF|22l+kkZF)`3N9(i%uBZhg$-A5erZv1s#_)~6vQw> zSP!I$L6L!xftdjWm>3vALCC<!z|O$HpwGa_z{tSBz^b*Kfny^B0|OHS7Xt$W8(5Hy zft!JWfd|ZHW#D1p1<Ug>urV+*@G~$lurM$(2rvji)eAE)fQ>YP8p$RkvV%bkVI~&? Z69WSS7XvE;H<Gz*P;(g>WWc7&0s!3ze)IqU literal 0 HcmV?d00001 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 GIT binary patch literal 577 zcmX^0Z`VEs1_pBmId%pnMh5xh{9OIiip1Q4oK*eb)a3lUl*FP+=lr~qqWqkk)FO5U z7Dfhvti-ZJ{hY+SbbbG%tkmQZMg}&U%)HDJJ4Oa(4b3n{1{UZ1lvFMTW(H0k237_( zMh1SL%)C^;(%hufqL9R-oK!{zA)ox@#GJ6iqD&AUD#%ijky*^hpy)%u8P<#p{Ke&& zCCM2f`2j_lxrs%Uj0{|^70IauC7Jno#q11%j10nHXJ+Q>d-}s=7#SpkO7luGb5p}I zi!+mQQXTX1@=FrInm}#>X-TWlPpiny(RYjR^|9t)5M^XwFM!y=#URcg$<83b$iR>6 zK*xdt9tJ4}X+{S2;?$C${QMF|22l+kkXevW3N9(i%uBZhg$!44erZv1s#_)~3?#6G zupUSogCYYX12Y2%FflNKf{=lcft`VYL7#z<fsuiMfmLfe1II=N1_mYuE(Qh$Hn1QY z12+Q$0}q(Z%D}_G3zp|&U}Ior;Adc9U}0cn5MU63suyNp02^rnHIhw8WCw#7!b~m( ZCI$uuE(TTxZX|Qrpyo0%$be0k1ptCsf4Tqw literal 0 HcmV?d00001 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 0000000..7467713 --- /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 0000000..402e529 --- /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 GIT binary patch literal 263 zcmX^0Z`VEs1_pBm5q1V9Mh5QO{FKt1RNc(Hw0uSeuHgLAqU2P!%$!t41_2}~y{yEt zL`DWSU$AOn26jdU?&SPjz0``t+=84`VFpe{27Zv5v<kiC{JfH){G4K825v?MZm3{d zMQ)BT11}>3CrCgqDX}<Jgn=Joiayj75e7j<29}Zn149u8VF=5pfq{XM0S1^Dm>C!t um>5_XSQ!`?Y#7+U63h%7V44d|@-%=bW(GbG#UKDCg}@{uSd5VYtPTLKpfJS% literal 0 HcmV?d00001 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 GIT binary patch literal 1883 zcmX^0Z`VEs1_pBmS#|~{Mh4!J0s}++#DaqOyv*c$b_Nzk2Dz-nvc$9skYG+`a$-ql zexAN#K>>`-$iQZknU`5&$H>5}p&7==z~Y>rlFH7&$;iMD(y5=5n3t~aT2z!@#KFML z$h09euPC)RKc_4;MIkvqw;(eIY@|X#QGQZRYHqQW0vBgUMyf(VX;MyRvO-B^L8=1G zJqo#{#U%<!sR}8nX_<McDGHf+3YjIv3i;)E3Tc@+sa%{PsTC!TMX8Aj$%%P+`Czqh z+e-2k62ayXtt=-oDK&=(quer6b5aPX^UO_5PaSM(!ZK6KiE+~ar~{>e+|-hc{1k=a z)Doxsl9K#f4Zr-9R83H<mt>@Zqf)^szbGZOC?GK}RUxxj0TktlkhGbUld6!GU!(w1 znOKxwnwy$eQmmk%$;BC5nOBlnp^yqnk~#{RdBv$kB??N`N(v?U;1rpYT9T>|T#{Il z3ev;H#lXS9%frCRz{kiSs^No3)4?T0nR)5fpfu0#lbM(5SDKrYS`?C)l#|NHAmo#u zoR|}qSd<CkLj_q%GBS%98Tfrra+x(F18Z?fVo?brgE++ev<m&=lEm~>{a_Gjtr^C_ zAjZg4Moi8bP5-G}oJ8lf0Z7+iw-I6Qph^FX3@o{cnR$#1Vj9udQa=ZS6eEKo{<LYO zz{SYG6`WsMl$`383CbS=!I`-QIjO<Psd=e-pghH($iT?J%m4z+42%q{3~UUH4D1XH z3?>X9J_7^SZU&A>A+GHVJo_0K7?>FN85qE77#IW@1Q-|?co-NN7#O%11Q~=F7#J8C vgc(GTOke`ZflUy_VuC6b6F3>f86==4XrZ`45{n78U=u*LFfvGk-6sP8M9V*b literal 0 HcmV?d00001 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 GIT binary patch literal 4397 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 K!)1o643Yp4fPEJL literal 0 HcmV?d00001 -- GitLab