This commit is contained in:
Simoes Lukas
2025-10-16 12:33:25 +02:00
parent 4be9e49474
commit ca833fec2f
8 changed files with 137 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
import java.awt.*;
import javax.swing.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.util.List;
import java.util.ArrayList;
public class ControleurParallelogramme implements MouseListener {
private List<Color> listeCouleurs;
private Fenetre fenetre;
public ControleurParallelogramme(List<Color> listeCouleurs, Fenetre fenetre) {
this.listeCouleurs = listeCouleurs;
this.fenetre = fenetre;
}
public void mouseClicked(MouseEvent e) {
try {
Robot robot = new Robot();
Color couleurPixel = robot.getPixelColor(e.getXOnScreen(), e.getYOnScreen());
Color aSupprimer = null;
for (Color couleur : this.listeCouleurs) {
if (couleur.equals(couleurPixel)) {
aSupprimer = couleur;
System.out.println("Luminance : " + (couleur.getRed()*21 + couleur.getGreen()*72 + couleur.getBlue()*7));
}
}
if (aSupprimer != null) {
this.listeCouleurs.remove(aSupprimer);
this.fenetre.getP().repaint();
}
} catch (AWTException exception) {
System.err.println("Erreur du système");
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

Binary file not shown.

View File

@@ -0,0 +1,39 @@
import java.awt.*;
import javax.swing.*;
import java.util.Random;
import java.util.List;
import java.util.ArrayList;
public class Fenetre extends JFrame {
private JParallelogramme p;
public Fenetre() {
this.setSize(300, 100);
this.setLocation(100, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout(FlowLayout.CENTER));
List<Color> listeCouleurs = new ArrayList<Color>();
int r, g, b;
Random aleatoire = new Random();
for (int i = 0; i != 10; i++) {
r = Math.abs(aleatoire.nextInt()) % 255;
g = Math.abs(aleatoire.nextInt()) % 255;
b = Math.abs(aleatoire.nextInt()) % 255;
listeCouleurs.add(new Color(r, g, b));
}
this.p = new JParallelogramme(listeCouleurs);
p.addMouseListener(new ControleurParallelogramme(listeCouleurs, this));
this.add(p);
}
public JParallelogramme getP() {
return this.p;
}
}

Binary file not shown.

View File

@@ -0,0 +1,47 @@
import java.awt.*;
import javax.swing.*;
import java.util.Random;
import java.util.List;
import java.util.ArrayList;
public class JParallelogramme extends JComponent {
private List<Color> listeCouleurs;
private List<Polygon> listePolygones;
public JParallelogramme(List<Color> listeCouleurs) {
this.setPreferredSize(new Dimension(280, 60));
this.listeCouleurs = listeCouleurs;
}
@Override
public void paintComponent(Graphics pinceau) {
Graphics secondPinceau = pinceau.create();
if (this.isOpaque()) {
secondPinceau.setColor(this.getBackground());
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
}
int[] x = {30, 50, 20, 0};
int[] y = {0, 0, this.getHeight(), this.getHeight()};
for (Color couleur : this.listeCouleurs) {
secondPinceau.setColor(couleur);
secondPinceau.fillPolygon(x, y, 4);
secondPinceau.setColor(Color.DARK_GRAY);
secondPinceau.drawPolygon(x, y, 4);
for (int j = 0; j != 4; j++) {
x[j] += 25;
}
}
}
public List<Color> getListeCouleurs() {
return this.listeCouleurs;
}
}

Binary file not shown.

View File

@@ -0,0 +1,6 @@
public class Main {
public static void main(String[] args) {
Fenetre fenetre = new Fenetre();
fenetre.setVisible(true);
}
}