fin arbre
This commit is contained in:
75
DEV3.2/dictionnaire/couleurs/CouleursApp.java
Normal file
75
DEV3.2/dictionnaire/couleurs/CouleursApp.java
Normal file
@@ -0,0 +1,75 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
public class CouleursApp {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// Créer la fenêtre principale
|
||||
JFrame frame = new JFrame("Choix des couleurs");
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setSize(400, 300);
|
||||
|
||||
// Panneau pour la liste et l'affichage de la couleur
|
||||
JPanel panel = new JPanel(new BorderLayout());
|
||||
|
||||
// Panneau de couleur
|
||||
JPanel colorPanel = new JPanel();
|
||||
colorPanel.setPreferredSize(new Dimension(400, 200));
|
||||
colorPanel.setBackground(Color.WHITE);
|
||||
|
||||
// Lecture des couleurs à partir du fichier rgb.txt
|
||||
Map<String, Color> colorMap = new HashMap<>();
|
||||
DefaultListModel<String> listModel = new DefaultListModel<>();
|
||||
try (BufferedReader br = new BufferedReader(new FileReader("rgb.txt"))) {
|
||||
String line;
|
||||
while ((line = br.readLine()) != null) {
|
||||
// Chaque ligne est sous la forme : R G B Nom
|
||||
String[] parts = line.trim().split("\\s+", 4);
|
||||
if (parts.length == 4) {
|
||||
try {
|
||||
int r = Integer.parseInt(parts[0]);
|
||||
int g = Integer.parseInt(parts[1]);
|
||||
int b = Integer.parseInt(parts[2]);
|
||||
String name = parts[3];
|
||||
colorMap.put(name, new Color(r, g, b));
|
||||
listModel.addElement(name);
|
||||
} catch (NumberFormatException e) {
|
||||
System.err.println("Erreur de format dans la ligne : " + line);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
System.err.println("Fichier rgb.txt introuvable !");
|
||||
return;
|
||||
} catch (IOException e) {
|
||||
System.err.println("Erreur de lecture dans rgb.txt !");
|
||||
return;
|
||||
}
|
||||
|
||||
// Liste JList pour les noms de couleurs
|
||||
JList<String> colorList = new JList<>(listModel);
|
||||
colorList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
||||
JScrollPane scrollPane = new JScrollPane(colorList);
|
||||
|
||||
// Ajouter un écouteur pour gérer les sélections dans la liste
|
||||
colorList.addListSelectionListener(e -> {
|
||||
String selectedColorName = colorList.getSelectedValue();
|
||||
if (selectedColorName != null) {
|
||||
Color selectedColor = colorMap.get(selectedColorName);
|
||||
colorPanel.setBackground(selectedColor);
|
||||
}
|
||||
});
|
||||
|
||||
// Ajouter les composants au panneau principal
|
||||
panel.add(scrollPane, BorderLayout.WEST);
|
||||
panel.add(colorPanel, BorderLayout.CENTER);
|
||||
|
||||
// Ajouter le panneau à la fenêtre
|
||||
frame.add(panel);
|
||||
|
||||
// Rendre la fenêtre visible
|
||||
frame.setVisible(true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user