wow le tp là

This commit is contained in:
Simoes Lukas
2025-09-04 15:36:55 +02:00
parent c16ef0985f
commit 2c3e150ec5
87 changed files with 1059 additions and 28 deletions

Binary file not shown.

View File

@@ -5,17 +5,21 @@ public class Composant extends JComponent {
private Color couleur1;
private Color couleur2;
private JLabel nomCouleur1;
private JLabel nomCouleur2;
private String nomCouleur1;
private String nomCouleur2;
public Composant(Color couleur1, Color couleur2) {
public Composant(Color couleur1, Color couleur2, String nomCouleur1, String nomCouleur2) {
this.couleur1 = couleur1;
this.couleur2 = couleur2;
this.nomCouleur1 = nomCouleur1;
this.nomCouleur2 = nomCouleur2;
}
@Override
public void paintComponent(Graphics pinceau) {
Graphics secondPinceau = pinceau.create();
FontMetrics metrique = pinceau.getFontMetrics();
int tailleTexte1 = metrique.stringWidth(this.nomCouleur2);
int[] x1 = {0, 0, this.getWidth()};
int[] y1 = {0, this.getHeight(), this.getHeight()};
@@ -28,14 +32,26 @@ public class Composant extends JComponent {
secondPinceau.setColor(this.couleur2);
secondPinceau.fillPolygon(x2, y2, 3);
JLabel couleur1Nom = this.nomCouleur1;
JLabel couleur2Nom = this.nomCouleur2;
secondPinceau.setColor(this.couleur1);
secondPinceau.drawString(this.nomCouleur2, this.getWidth() - tailleTexte1 - 10, metrique.getAscent() + 10);
secondPinceau.setColor(this.couleur2);
secondPinceau.drawString(this.nomCouleur1, 10, this.getHeight() - 10);
couleur1Nom.setHorizontalAlignment(JLabel.RIGHT);
couleur2Nom.setHorizontalAlignment(JLabel.LEFT);
this.setLayout(new BorderLayout());
this.add(couleur1Nom, BorderLayout.NORTH);
this.add(couleur2Nom, BorderLayout.SOUTH);
}
public void setCouleur1(Color couleur) {
this.couleur1 = couleur;
}
public void setCouleur2(Color couleur) {
this.couleur2 = couleur;
}
public void setNomCouleur1(String couleur) {
this.nomCouleur1 = couleur;
}
public void setNomCouleur2(String couleur) {
this.nomCouleur2 = couleur;
}
}

Binary file not shown.

View File

@@ -7,9 +7,15 @@ public class Fenetre extends JFrame {
this.setSize(200, 200);
this.setLocation(100, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new GridLayout(1, 1));
Color couleur1 = // TODO
Color couleur2 = // TODO
this.add(new Composant(couleur1, couleur2));
this.setLayout(new BorderLayout());
LectureFichier fichier = new LectureFichier();
Color couleur1 = fichier.getCouleurs()[64];
Color couleur2 = fichier.getCouleurs()[16];
String nom1 = fichier.getNomsCouleurs()[64];
String nom2 = fichier.getNomsCouleurs()[16];
Composant composant = new Composant(couleur1, couleur2, nom1, nom2);
this.add(composant, BorderLayout.CENTER);
this.addMouseWheelListener(new GestionMoletteSouris(composant, fichier.getCouleurs(), fichier.getNomsCouleurs()));
}
}

Binary file not shown.

View File

@@ -0,0 +1,55 @@
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GestionMoletteSouris implements MouseWheelListener {
private Composant composant;
private Color[] tabCouleurs ;
private String[] tabNomsCouleurs;
private int positionTabCouleurs1;
private int positionTabCouleurs2;
public GestionMoletteSouris(Composant composant, Color[] tabCouleurs, String[] tabNomsCouleurs) {
this.composant = composant;
this.tabCouleurs = tabCouleurs;
this.tabNomsCouleurs = tabNomsCouleurs;
this.positionTabCouleurs1 = 64;
this.positionTabCouleurs2 = 16;
}
public void mouseWheelMoved(MouseWheelEvent evenement) {
int posX = evenement.getX();
int posY = evenement.getY();
if (posX < posY) {
if (evenement.getWheelRotation() < 0) {
this.positionTabCouleurs1++;
this.positionTabCouleurs1 = this.positionTabCouleurs1 % this.tabCouleurs.length;
this.composant.setCouleur1(this.tabCouleurs[this.positionTabCouleurs1]);
this.composant.setNomCouleur1(this.tabNomsCouleurs[this.positionTabCouleurs1]);
}
else {
this.positionTabCouleurs1--;
this.positionTabCouleurs1 = this.positionTabCouleurs1 % this.tabCouleurs.length;
this.composant.setCouleur1(this.tabCouleurs[this.positionTabCouleurs1]);
this.composant.setNomCouleur1(this.tabNomsCouleurs[this.positionTabCouleurs1]);
}
}
else {
if (evenement.getWheelRotation() < 0) {
this.positionTabCouleurs2++;
this.positionTabCouleurs2 = this.positionTabCouleurs2 % this.tabCouleurs.length;
this.composant.setCouleur2(this.tabCouleurs[this.positionTabCouleurs2]);
this.composant.setNomCouleur2(this.tabNomsCouleurs[this.positionTabCouleurs2]);
}
else {
this.positionTabCouleurs2--;
this.positionTabCouleurs2 = this.positionTabCouleurs2 % this.tabCouleurs.length;
this.composant.setCouleur2(this.tabCouleurs[this.positionTabCouleurs2]);
this.composant.setNomCouleur2(this.tabNomsCouleurs[this.positionTabCouleurs2]);
}
}
System.out.println(positionTabCouleurs1 + " / " + positionTabCouleurs2);
this.composant.repaint();
}
}

Binary file not shown.

View File

@@ -1,5 +1,6 @@
import java.awt.*;
import java.io.*;
import java.util.Arrays;
public class LectureFichier {
@@ -7,13 +8,24 @@ public class LectureFichier {
private String[] tabNomsCouleurs;
public LectureFichier() {
this.tabCouleurs = new Color[800];
this.tabNomsCouleurs = new String[800];
try {
BufferedReader lecture = new BufferedReader(new FileReader("rgb.txt"));
try {
String ligne = lecture.readLine();
// TODO : Split, trim des lignes + Gestion Molette
int compteur = 0;
while (ligne != null) {
int r = Integer.parseInt(ligne.substring(0, 3).replaceAll(" ", "0"));
int g = Integer.parseInt(ligne.substring(4, 7).replaceAll(" ", "0"));
int b = Integer.parseInt(ligne.substring(8, 11).replaceAll(" ", "0"));
this.tabCouleurs[compteur] = new Color(r, g, b);
ligne = ligne.substring(11, ligne.length()).replaceAll(" ", "");
this.tabNomsCouleurs[compteur] = ligne;
ligne = lecture.readLine();
compteur++;
}
} catch (IOException e2) {
System.err.println("Erreur de lecture.");
}
@@ -27,4 +39,12 @@ public class LectureFichier {
}
}
public Color[] getCouleurs() {
return this.tabCouleurs;
}
public String[] getNomsCouleurs() {
return this.tabNomsCouleurs;
}
}

Binary file not shown.