Settings
This commit is contained in:
133
TestV2/src/fr/monkhanny/dorfromantik/gui/SettingsPanel.java
Normal file
133
TestV2/src/fr/monkhanny/dorfromantik/gui/SettingsPanel.java
Normal file
@@ -0,0 +1,133 @@
|
||||
package fr.monkhanny.dorfromantik.gui;
|
||||
|
||||
import fr.monkhanny.dorfromantik.Options;
|
||||
import fr.monkhanny.dorfromantik.enums.Fonts;
|
||||
import fr.monkhanny.dorfromantik.utils.FontManager;
|
||||
import fr.monkhanny.dorfromantik.utils.MusicPlayer;
|
||||
import fr.monkhanny.dorfromantik.components.Title;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
import javax.swing.plaf.basic.BasicSliderUI;
|
||||
|
||||
public class SettingsPanel extends JPanel {
|
||||
private JCheckBox muteMusicCheckBox;
|
||||
private JCheckBox muteSoundsCheckBox;
|
||||
private JSlider musicVolumeSlider;
|
||||
private JSlider soundsVolumeSlider;
|
||||
|
||||
public SettingsPanel() {
|
||||
// Layout général du panneau
|
||||
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
|
||||
this.setBackground(new Color(255, 239, 214)); // Fond pastel (beige clair)
|
||||
this.setBorder(BorderFactory.createEmptyBorder(20, 40, 20, 40));
|
||||
|
||||
// Titre centré avec une police moderne
|
||||
Title title = new Title("Paramètres", 45, new Color(255, 179, 128)); // Rose pastel
|
||||
title.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré
|
||||
JPanel titlePanel = new JPanel();
|
||||
titlePanel.setOpaque(false); // Pour garder le fond transparent
|
||||
titlePanel.setLayout(new FlowLayout(FlowLayout.CENTER)); // Centrer horizontalement
|
||||
titlePanel.add(title);
|
||||
|
||||
this.add(titlePanel);
|
||||
this.add(Box.createVerticalStrut(30)); // Espacement entre le titre et les options
|
||||
|
||||
// Section 1: Couper la musique + Slider musique
|
||||
JPanel musicPanel = new JPanel();
|
||||
musicPanel.setLayout(new BoxLayout(musicPanel, BoxLayout.Y_AXIS));
|
||||
musicPanel.setBackground(new Color(255, 179, 128)); // Fond vert pastel
|
||||
|
||||
muteMusicCheckBox = new JCheckBox("Couper la Musique");
|
||||
muteMusicCheckBox.setSelected(Options.MUSIC_MUTED);
|
||||
muteMusicCheckBox.setForeground(new Color(0, 0, 0)); // Rose pastel
|
||||
muteMusicCheckBox.setBackground(new Color(255, 182, 193)); // Fond vert pastel
|
||||
muteMusicCheckBox.setFont(new Font("Roboto", Font.PLAIN, 18)); // Police moderne
|
||||
muteMusicCheckBox.setFocusPainted(false);
|
||||
muteMusicCheckBox.setBorderPainted(false);
|
||||
muteMusicCheckBox.setContentAreaFilled(false);
|
||||
muteMusicCheckBox.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
Options.MUSIC_MUTED = muteMusicCheckBox.isSelected();
|
||||
if (Options.MUSIC_MUTED) {
|
||||
MusicPlayer.pauseMusic();
|
||||
} else {
|
||||
MusicPlayer.playMusic();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
musicVolumeSlider = new JSlider(0, 100, Options.MUSIC_VOLUME);
|
||||
musicVolumeSlider.setForeground(new Color(0, 0, 0)); // Rose pastel
|
||||
musicVolumeSlider.setBackground(new Color(255, 224, 204)); // Fond vert pastel
|
||||
musicVolumeSlider.setMajorTickSpacing(25);
|
||||
musicVolumeSlider.setMinorTickSpacing(5);
|
||||
musicVolumeSlider.setPaintTicks(true);
|
||||
musicVolumeSlider.setPaintLabels(true);
|
||||
musicVolumeSlider.setFont(new Font("Roboto", Font.PLAIN, 14)); // Police moderne
|
||||
musicVolumeSlider.setUI(new BasicSliderUI(musicVolumeSlider));
|
||||
musicVolumeSlider.addChangeListener(new ChangeListener() {
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
Options.MUSIC_VOLUME = musicVolumeSlider.getValue();
|
||||
MusicPlayer.setVolume(MusicPlayer.getMusicClip(), Options.MUSIC_VOLUME);
|
||||
}
|
||||
});
|
||||
|
||||
musicPanel.add(muteMusicCheckBox);
|
||||
musicPanel.add(Box.createVerticalStrut(10)); // Espacement
|
||||
musicPanel.add(musicVolumeSlider);
|
||||
|
||||
this.add(musicPanel); // Ajouter le panneau musique
|
||||
this.add(Box.createVerticalStrut(30)); // Espacement entre la musique et les bruitages
|
||||
|
||||
// Section 2: Couper les bruitages + Slider bruitages
|
||||
JPanel soundsPanel = new JPanel();
|
||||
soundsPanel.setLayout(new BoxLayout(soundsPanel, BoxLayout.Y_AXIS));
|
||||
soundsPanel.setBackground(new Color(255, 179, 128)); // Fond orange pastel
|
||||
|
||||
muteSoundsCheckBox = new JCheckBox("Couper les Bruitages");
|
||||
muteSoundsCheckBox.setSelected(Options.SOUNDS_MUTED);
|
||||
muteSoundsCheckBox.setForeground(new Color(0, 0, 0)); // Rose pastel
|
||||
muteSoundsCheckBox.setBackground(new Color(255, 224, 204)); // Fond orange pastel
|
||||
muteSoundsCheckBox.setFont(new Font("Roboto", Font.PLAIN, 18)); // Police moderne
|
||||
muteSoundsCheckBox.setFocusPainted(false);
|
||||
muteSoundsCheckBox.setBorderPainted(false);
|
||||
muteSoundsCheckBox.setContentAreaFilled(false);
|
||||
muteSoundsCheckBox.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
Options.SOUNDS_MUTED = muteSoundsCheckBox.isSelected();
|
||||
}
|
||||
});
|
||||
|
||||
soundsVolumeSlider = new JSlider(0, 100, Options.SOUNDS_VOLUME);
|
||||
soundsVolumeSlider.setForeground(new Color(0, 0, 0)); // Rose pastel
|
||||
soundsVolumeSlider.setBackground(new Color(255, 224, 204)); // Fond orange pastel
|
||||
soundsVolumeSlider.setMajorTickSpacing(25);
|
||||
soundsVolumeSlider.setMinorTickSpacing(5);
|
||||
soundsVolumeSlider.setPaintTicks(true);
|
||||
soundsVolumeSlider.setPaintLabels(true);
|
||||
soundsVolumeSlider.setFont(new Font("Roboto", Font.PLAIN, 14)); // Police moderne
|
||||
soundsVolumeSlider.setUI(new BasicSliderUI(soundsVolumeSlider));
|
||||
soundsVolumeSlider.addChangeListener(new ChangeListener() {
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
Options.SOUNDS_VOLUME = soundsVolumeSlider.getValue();
|
||||
MusicPlayer.setVolume(MusicPlayer.getSoundClip(), Options.SOUNDS_VOLUME);
|
||||
}
|
||||
});
|
||||
|
||||
soundsPanel.add(muteSoundsCheckBox);
|
||||
soundsPanel.add(Box.createVerticalStrut(10)); // Espacement
|
||||
soundsPanel.add(soundsVolumeSlider);
|
||||
|
||||
this.add(soundsPanel); // Ajouter le panneau bruitages
|
||||
this.add(Box.createVerticalStrut(30)); // Espacement entre les sections
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user