Amélioration #1

This commit is contained in:
2024-12-03 10:14:33 +01:00
parent 201d164065
commit f2822db056
7 changed files with 152 additions and 57 deletions

View File

@@ -13,6 +13,7 @@ public class SettingsPanel extends JPanel {
private MainMenu mainMenu;
private JFrame settingsFrame;
private JButton returnButton; // Déclarer le bouton pour pouvoir y accéder depuis d'autres méthodes
public SettingsPanel(MainMenu mainMenu, JFrame settingsFrame) {
this.mainMenu = mainMenu;
@@ -43,7 +44,7 @@ public class SettingsPanel extends JPanel {
title.setHorizontalAlignment(JLabel.CENTER);
topPanel.add(title, BorderLayout.CENTER);
JButton returnButton = createReturnButtonWithIcon();
returnButton = createReturnButtonWithIcon(); // Initialiser le bouton ici
JPanel leftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
leftPanel.setOpaque(false);
leftPanel.add(returnButton);
@@ -52,6 +53,13 @@ public class SettingsPanel extends JPanel {
this.add(topPanel, BorderLayout.NORTH);
}
// Méthode pour rendre le bouton de retour visible ou invisible
public void setReturnButtonVisible(boolean visible) {
if (returnButton != null) {
returnButton.setVisible(visible);
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
@@ -144,52 +152,52 @@ public class SettingsPanel extends JPanel {
}
private JPanel createAutoFocusPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); // Disposition verticale
panel.setOpaque(false); // Assurer que le fond est transparent
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); // Disposition verticale
panel.setOpaque(false); // Assurer que le fond est transparent
// Titre de la section
JLabel titleLabel = new JLabel("Focus Automatique");
titleLabel.setFont(new Font("Roboto", Font.PLAIN, 30));
titleLabel.setForeground(Color.WHITE);
titleLabel.setAlignmentX(Component.CENTER_ALIGNMENT); // Aligner le texte au centre
panel.add(titleLabel);
panel.add(Box.createVerticalStrut(10)); // Espacement vertical
// Titre de la section
JLabel titleLabel = new JLabel("Focus Automatique");
titleLabel.setFont(new Font("Roboto", Font.PLAIN, 30));
titleLabel.setForeground(Color.WHITE);
titleLabel.setAlignmentX(Component.CENTER_ALIGNMENT); // Aligner le texte au centre
panel.add(titleLabel);
panel.add(Box.createVerticalStrut(10)); // Espacement vertical
// Panneau contenant texte et case à cocher sur la même ligne
JPanel checkBoxPanel = new JPanel();
checkBoxPanel.setLayout(new BoxLayout(checkBoxPanel, BoxLayout.X_AXIS)); // Disposition horizontale
checkBoxPanel.setOpaque(false); // Assurer que le fond est transparent
// Panneau contenant texte et case à cocher sur la même ligne
JPanel checkBoxPanel = new JPanel();
checkBoxPanel.setLayout(new BoxLayout(checkBoxPanel, BoxLayout.X_AXIS)); // Disposition horizontale
checkBoxPanel.setOpaque(false); // Assurer que le fond est transparent
// Texte explicatif avant la case à cocher
JLabel descriptionLabel = new JLabel("Gestion du focus automatique (nécessite une bonne carte graphique) :");
descriptionLabel.setFont(new Font("Roboto", Font.PLAIN, 22));
descriptionLabel.setForeground(Color.WHITE);
descriptionLabel.setAlignmentX(Component.LEFT_ALIGNMENT); // Aligner à gauche
checkBoxPanel.add(descriptionLabel); // Ajouter le texte dans le panneau
// Texte explicatif avant la case à cocher
JLabel descriptionLabel = new JLabel("Gestion du focus automatique (nécessite une bonne carte graphique) :");
descriptionLabel.setFont(new Font("Roboto", Font.PLAIN, 22));
descriptionLabel.setForeground(Color.WHITE);
descriptionLabel.setAlignmentX(Component.LEFT_ALIGNMENT); // Aligner à gauche
checkBoxPanel.add(descriptionLabel); // Ajouter le texte dans le panneau
// Ajouter un espace flexible entre le texte et la case à cocher
checkBoxPanel.add(Box.createHorizontalGlue()); // Cela pousse la case à cocher vers la droite
// Ajouter un espace flexible entre le texte et la case à cocher
checkBoxPanel.add(Box.createHorizontalGlue()); // Cela pousse la case à cocher vers la droite
// Case à cocher
JCheckBox autoFocusCheckBox = new JCheckBox();
autoFocusCheckBox.setFont(new Font("Roboto", Font.PLAIN, 22));
autoFocusCheckBox.setFocusPainted(false);
autoFocusCheckBox.setOpaque(false);
autoFocusCheckBox.setBorderPainted(false);
autoFocusCheckBox.setMargin(new Insets(5, 5, 5, 5));
autoFocusCheckBox.setSelected(Options.AUTO_FOCUS); // État initial selon la valeur actuelle de AUTO_FOCUS
autoFocusCheckBox.addActionListener(e -> {
Options.AUTO_FOCUS = autoFocusCheckBox.isSelected(); // Mettre à jour la variable auto-focus
});
// Case à cocher
JCheckBox autoFocusCheckBox = new JCheckBox();
autoFocusCheckBox.setFont(new Font("Roboto", Font.PLAIN, 22));
autoFocusCheckBox.setFocusPainted(false);
autoFocusCheckBox.setOpaque(false);
autoFocusCheckBox.setBorderPainted(false);
autoFocusCheckBox.setMargin(new Insets(5, 5, 5, 5));
autoFocusCheckBox.setSelected(Options.AUTO_FOCUS); // État initial selon la valeur actuelle de AUTO_FOCUS
autoFocusCheckBox.addActionListener(e -> {
Options.AUTO_FOCUS = autoFocusCheckBox.isSelected(); // Mettre à jour la variable auto-focus
});
checkBoxPanel.add(autoFocusCheckBox); // Ajouter la case à cocher
checkBoxPanel.add(autoFocusCheckBox); // Ajouter la case à cocher
// Ajouter le panneau contenant texte + case à cocher
panel.add(checkBoxPanel);
// Ajouter le panneau contenant texte + case à cocher
panel.add(checkBoxPanel);
return panel;
}
return panel;
}
private JPanel createSliderPanel(JSlider volumeSlider) {
@@ -221,7 +229,6 @@ public class SettingsPanel extends JPanel {
return gbc;
}
private JButton createReturnButtonWithIcon() {
ImageIcon originalIcon = new ImageIcon(Images.EXIT_ICON.getImagePath());