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
@@ -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());
}
}