wow le tp là
This commit is contained in:
BIN
DEV2.1/TP14/02_Couleurs/Composant.class
Normal file
BIN
DEV2.1/TP14/02_Couleurs/Composant.class
Normal file
Binary file not shown.
@@ -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;
|
||||
}
|
||||
}
|
BIN
DEV2.1/TP14/02_Couleurs/Fenetre.class
Normal file
BIN
DEV2.1/TP14/02_Couleurs/Fenetre.class
Normal file
Binary file not shown.
@@ -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()));
|
||||
}
|
||||
}
|
BIN
DEV2.1/TP14/02_Couleurs/GestionMoletteSouris.class
Normal file
BIN
DEV2.1/TP14/02_Couleurs/GestionMoletteSouris.class
Normal file
Binary file not shown.
@@ -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();
|
||||
}
|
||||
}
|
BIN
DEV2.1/TP14/02_Couleurs/LectureFichier.class
Normal file
BIN
DEV2.1/TP14/02_Couleurs/LectureFichier.class
Normal file
Binary file not shown.
@@ -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;
|
||||
}
|
||||
|
||||
}
|
BIN
DEV2.1/TP14/02_Couleurs/Main.class
Normal file
BIN
DEV2.1/TP14/02_Couleurs/Main.class
Normal file
Binary file not shown.
Reference in New Issue
Block a user