Ajout de l'interface des fréquences

This commit is contained in:
2025-12-20 14:56:22 +01:00
parent 93c81c9b8a
commit 34d86d9717
10 changed files with 85 additions and 5 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
+23
View File
@@ -22,8 +22,31 @@ public class Convertisseur {
codesBleu.put(255, "0");
codesBleu.put(128, "10");
// Exemple d'utilisation pour les tables de fréquence : ne pas tenir compte des valeurs !!
int[] freqR = new int[256];
freqR[0] = 20078;
freqR[1] = 4789622;
// ........
freqR[155] = 2246666;
int[] freqG = new int[256];
freqG[0] = 1255752;
freqG[2] = 622;
// ........
freqG[200] = 0;
int[] freqB = new int[256];
freqB[3] = 12;
// .....
freqB[100] = 212;
// Appeler la méthode sur l'instance de la fenêtre
window.setCanonicalTable(codesRouge, codesVert, codesBleu);
window.setFrequencyTable(freqR,freqG,freqB);
System.out.println("DLKSLDKSLKDSLKSLKSLDKSLDKLSdkslkdl");
}
}
@@ -114,8 +114,8 @@ public class ConverterWindow extends JFrame {
* au panneau dédié de rafraîchir son affichage.
* </p>
*/
public void setFrequencyTable() {
frequencyTablePanel.updateFrequencies();
public void setFrequencyTable(int[] freqR,int[] freqG,int[] freqB) {
frequencyTablePanel.updateFrequencies(freqR,freqG,freqB);
}
/**
@@ -1,13 +1,70 @@
package fr.iutfbleau.sae.vconverter;
import javax.swing.*;
import java.awt.*;
public class FrequencyTablePanel extends JPanel {
// 3 Zone de texte pour la fréquence du rouge , du vert et du bleu
private JTextArea freqRouge , freqVert , freqBleu;
public FrequencyTablePanel() {
// constructeur vide pour l'instant
setLayout(new BoxLayout(this , BoxLayout.Y_AXIS));
setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15));
// Premiere étiquette pour les fréquences en géneral
JLabel etiquette1 = new JLabel("Frequence");
etiquette1.setFont(new Font("SansSerif", Font.BOLD, 16));
super.add(etiquette1);
super.add(Box.createVerticalStrut(10));
// Puis création de zone de texte pour le rouge , le vert et le bleu
this.freqRouge = creationZoneText("Rouge");
this.freqVert = creationZoneText("Vert");
this.freqBleu = creationZoneText("Bleu");
}
public void updateFrequencies() {
// Implémentation à ajouter
private JTextArea creationZoneText(String t) {
super.add(new JLabel(t + ":"));
GridLayout gestionnaire_mise_en_page = new GridLayout(5,5,10,10);
JTextArea zone = new JTextArea(8, 30);
zone.setLayout(gestionnaire_mise_en_page);
zone.setEditable(false);
zone.setFont(new Font("Monospaced", Font.PLAIN, 12));
JScrollPane scroll = new JScrollPane(zone);
scroll.setPreferredSize(new Dimension(300, 120));
add(scroll);
add(Box.createVerticalStrut(10));
return zone;
}
public void updateFrequencies(int[] freqR,int[] freqG,int[] freqB) {
mettreAJour(freqRouge,freqR);
mettreAJour(freqVert,freqG);
mettreAJour(freqBleu,freqB);
}
public void mettreAJour(JTextArea zone,int[] frequence){
StringBuilder string = new StringBuilder();
for(int i = 0 ; i < frequence.length ; i++){
string.append(String.format("%3d : %s%n", i, frequence[i]));
if(i%10 == 0 && i!=0){
string.append("\n");
}
}
zone.setText(string.toString());
}
}