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