diff --git a/src/main/java/eu/midnightdust/yaytris/ui/SettingsMenu.java b/src/main/java/eu/midnightdust/yaytris/ui/SettingsMenu.java index 39d3c24..8445556 100644 --- a/src/main/java/eu/midnightdust/yaytris/ui/SettingsMenu.java +++ b/src/main/java/eu/midnightdust/yaytris/ui/SettingsMenu.java @@ -3,6 +3,10 @@ package eu.midnightdust.yaytris.ui; import eu.midnightdust.yaytris.Settings; import javax.swing.*; +import java.awt.*; + +import static eu.midnightdust.yaytris.ui.TetrisUI.scale; +import static eu.midnightdust.yaytris.ui.TetrisUI.setFontScale; public class SettingsMenu extends AbstractMenu { final TetrisUI ui; @@ -12,6 +16,23 @@ public class SettingsMenu extends AbstractMenu { this.setBounds(x, y, width, height); this.setLayout(null); + this.add(new JLabel("Musik-Lautstärke:")); + JSlider musicVolumeSlider = new JSlider(0, 100, Settings.musicVolume); + musicVolumeSlider.addChangeListener(change -> { + Settings.musicVolume = musicVolumeSlider.getValue(); + Settings.write(); + }); + this.add(musicVolumeSlider); + + this.add(new JLabel("Sound-Lautstärke:")); + JSlider soundVolumeSlider = new JSlider(0, 100, Settings.soundVolume); + soundVolumeSlider.addChangeListener(change -> { + Settings.soundVolume = soundVolumeSlider.getValue(); + Settings.write(); + }); + this.add(soundVolumeSlider); + + this.add(new JLabel("Skalierung:")); JSlider scaleSlider = new JSlider(100, 500, (int) (Settings.guiScale * 100)); scaleSlider.addChangeListener(change -> { Settings.guiScale = scaleSlider.getValue() / 100f; @@ -23,4 +44,11 @@ public class SettingsMenu extends AbstractMenu { backButton.addActionListener(ui::openMainMenu); this.add(backButton); } + + @Override + public Component add(Component comp) { + Component ret = super.add(comp); + if (comp instanceof JLabel) comp.setBounds(scale(60), scale(40+23*(this.getComponentCount()-1)), scale(100), scale(10)); + return ret; + } }