ui(settings): add volume sliders
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user