diff --git a/DEV/DEV3.1/TP04/.DS_Store b/DEV/DEV3.1/TP04/.DS_Store new file mode 100644 index 0000000..e3fca77 Binary files /dev/null and b/DEV/DEV3.1/TP04/.DS_Store differ diff --git a/DEV/DEV3.1/TP04/Exercise1/.DS_Store b/DEV/DEV3.1/TP04/Exercise1/.DS_Store new file mode 100644 index 0000000..72269f8 Binary files /dev/null and b/DEV/DEV3.1/TP04/Exercise1/.DS_Store differ diff --git a/DEV/DEV3.1/TP04/Exercise1/Makefile b/DEV/DEV3.1/TP04/Exercise1/Makefile new file mode 100644 index 0000000..cb6a4fe --- /dev/null +++ b/DEV/DEV3.1/TP04/Exercise1/Makefile @@ -0,0 +1,17 @@ +run: compile + java -jar Project.jar + +compile: build/Main.class + jar cvfe Project.jar fr/nathanbaudrier/Main -C build fr resources + +build/Main.class: src/Main.java build/ImageWindow.class + javac -d build -cp build -sourcepath src $< -implicit:none + +build/ClickSwapImageEvent.class build/ImageWindow.class: src/ClickSwapImageEvent.java src/ImageWindow.java build/ImageManager.class + javac -d build -cp build -sourcepath src src/ClickSwapImageEvent.java src/ImageWindow.java -implicit:none + +build/ImageManager.class: src/ImageManager.java + javac -d build -cp build -sourcepath src $< -implicit:none + + + diff --git a/DEV/DEV3.1/TP04/Exercise1/resources/dice.jpg b/DEV/DEV3.1/TP04/Exercise1/resources/dice.jpg new file mode 100644 index 0000000..9619f77 Binary files /dev/null and b/DEV/DEV3.1/TP04/Exercise1/resources/dice.jpg differ diff --git a/DEV/DEV3.1/TP04/Exercise1/resources/frog.png b/DEV/DEV3.1/TP04/Exercise1/resources/frog.png new file mode 100644 index 0000000..f3c8c99 Binary files /dev/null and b/DEV/DEV3.1/TP04/Exercise1/resources/frog.png differ diff --git a/DEV/DEV3.1/TP04/Exercise1/resources/random.jpg b/DEV/DEV3.1/TP04/Exercise1/resources/random.jpg new file mode 100644 index 0000000..7f1e47c Binary files /dev/null and b/DEV/DEV3.1/TP04/Exercise1/resources/random.jpg differ diff --git a/DEV/DEV3.1/TP04/Exercise1/src/ClickSwapImageEvent.java b/DEV/DEV3.1/TP04/Exercise1/src/ClickSwapImageEvent.java new file mode 100644 index 0000000..75c7755 --- /dev/null +++ b/DEV/DEV3.1/TP04/Exercise1/src/ClickSwapImageEvent.java @@ -0,0 +1,25 @@ +package fr.nathanbaudrier; + +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + +public class ClickSwapImageEvent extends MouseAdapter { + + private ImageWindow window; + + public ClickSwapImageEvent(ImageWindow window) { + this.window = window; + } + + public void mouseClicked(MouseEvent event) { + System.out.println(this.window.manager.cursor); + if(event.getX() > this.window.getWidth() / 2) { + this.window.nextImage(); + System.out.println(this.window.manager.cursor); + return; + } + + this.window.previousImage(); + System.out.println(this.window.manager.cursor); + } +} diff --git a/DEV/DEV3.1/TP04/Exercise1/src/ImageManager.java b/DEV/DEV3.1/TP04/Exercise1/src/ImageManager.java new file mode 100644 index 0000000..7a8ca60 --- /dev/null +++ b/DEV/DEV3.1/TP04/Exercise1/src/ImageManager.java @@ -0,0 +1,39 @@ +package fr.nathanbaudrier; + +import javax.swing.ImageIcon; + +public class ImageManager { + + private ImageIcon[] images; + public int cursor; + + public ImageManager() { + + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + + this.images = new ImageIcon[3]; + this.images[0] = new ImageIcon(loader.getResource("resources/dice.jpg")); + this.images[1] = new ImageIcon(loader.getResource("resources/frog.png")); + this.images[2] = new ImageIcon(loader.getResource("resources/random.jpg")); + } + + public ImageIcon getNextImage() { + if(this.cursor >= this.images.length - 1) { + this.cursor = 0; + } else { + this.cursor++; + } + + return this.images[this.cursor]; + } + + public ImageIcon getPreviousImage() { + if(this.cursor <= 0) { + this.cursor = this.images.length - 1; + } else { + this.cursor--; + } + + return this.images[this.cursor]; + } +} diff --git a/DEV/DEV3.1/TP04/Exercise1/src/ImageWindow.java b/DEV/DEV3.1/TP04/Exercise1/src/ImageWindow.java new file mode 100644 index 0000000..e612645 --- /dev/null +++ b/DEV/DEV3.1/TP04/Exercise1/src/ImageWindow.java @@ -0,0 +1,48 @@ +package fr.nathanbaudrier; + +import javax.swing.JFrame; +import javax.swing.JLabel; + +public class ImageWindow extends JFrame { + + public ImageManager manager; + private JLabel label; + + public ImageWindow() { + this.manager = new ImageManager(); + + this.setSize(1024, 1024); + this.setLocationRelativeTo(null); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + this.addMouseListener(new ClickSwapImageEvent(this)); + + this.nextImage(); + } + + public void nextImage() { + if(this.label != null) { + this.remove(this.label); + } + + this.label = new JLabel(this.manager.getNextImage()); + this.label.setVerticalAlignment(JLabel.CENTER); + this.label.setHorizontalAlignment(JLabel.CENTER); + + this.add(label); + this.revalidate(); + } + + public void previousImage() { + if(this.label != null) { + this.remove(this.label); + } + + this.label = new JLabel(this.manager.getPreviousImage()); + this.label.setVerticalAlignment(JLabel.CENTER); + this.label.setHorizontalAlignment(JLabel.CENTER); + + this.add(label); + this.revalidate(); + } +} diff --git a/DEV/DEV3.1/TP04/Exercise1/src/Main.java b/DEV/DEV3.1/TP04/Exercise1/src/Main.java new file mode 100644 index 0000000..172e81e --- /dev/null +++ b/DEV/DEV3.1/TP04/Exercise1/src/Main.java @@ -0,0 +1,9 @@ +package fr.nathanbaudrier; + +public class Main { + + public static void main(String[] args) { + ImageWindow window = new ImageWindow(); + window.setVisible(true); + } +}