feat: improve menus
This commit is contained in:
16
src/main/java/eu/midnightdust/yaytris/ui/AbstractMenu.java
Normal file
16
src/main/java/eu/midnightdust/yaytris/ui/AbstractMenu.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package eu.midnightdust.yaytris.ui;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
import static eu.midnightdust.yaytris.ui.TetrisUI.scale;
|
||||||
|
import static eu.midnightdust.yaytris.ui.TetrisUI.setFontScale;
|
||||||
|
|
||||||
|
public class AbstractMenu extends JPanel {
|
||||||
|
@Override
|
||||||
|
public Component add(Component comp) {
|
||||||
|
comp.setBounds(scale(60), scale(20+23*this.getComponentCount()), scale(100), scale(20));
|
||||||
|
if (comp instanceof JComponent) setFontScale((JComponent) comp);
|
||||||
|
return super.add(comp);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,14 +1,8 @@
|
|||||||
package eu.midnightdust.yaytris.ui;
|
package eu.midnightdust.yaytris.ui;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.plaf.basic.BasicButtonUI;
|
|
||||||
import javax.swing.plaf.metal.MetalButtonUI;
|
|
||||||
import javax.swing.plaf.synth.SynthButtonUI;
|
|
||||||
|
|
||||||
import static eu.midnightdust.yaytris.ui.TetrisUI.scale;
|
public class MainMenu extends AbstractMenu {
|
||||||
import static eu.midnightdust.yaytris.ui.TetrisUI.setFontScale;
|
|
||||||
|
|
||||||
public class MainMenu extends JPanel {
|
|
||||||
final TetrisUI ui;
|
final TetrisUI ui;
|
||||||
|
|
||||||
MainMenu(int x, int y, int width, int height, TetrisUI ui) {
|
MainMenu(int x, int y, int width, int height, TetrisUI ui) {
|
||||||
@@ -16,10 +10,16 @@ public class MainMenu extends JPanel {
|
|||||||
this.setBounds(x, y, width, height);
|
this.setBounds(x, y, width, height);
|
||||||
this.setLayout(null);
|
this.setLayout(null);
|
||||||
|
|
||||||
JButton settingsButton = new JButton("Settings");
|
JButton startButton = new JButton("Start");
|
||||||
|
startButton.addActionListener(ui::openSettings);
|
||||||
|
this.add(startButton);
|
||||||
|
|
||||||
|
JButton settingsButton = new JButton("Einstellungen");
|
||||||
settingsButton.addActionListener(ui::openSettings);
|
settingsButton.addActionListener(ui::openSettings);
|
||||||
settingsButton.setBounds(scale(60), scale(20), scale(100), scale(20));
|
|
||||||
setFontScale(settingsButton);
|
|
||||||
this.add(settingsButton);
|
this.add(settingsButton);
|
||||||
|
|
||||||
|
JButton leaveButton = new JButton("Spiel verlassen");
|
||||||
|
leaveButton.addActionListener(e -> System.exit(0));
|
||||||
|
this.add(leaveButton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,10 @@
|
|||||||
package eu.midnightdust.yaytris.ui;
|
package eu.midnightdust.yaytris.ui;
|
||||||
|
|
||||||
import eu.midnightdust.yaytris.Settings;
|
import eu.midnightdust.yaytris.Settings;
|
||||||
import eu.midnightdust.yaytris.Tetris;
|
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.plaf.basic.BasicSliderUI;
|
|
||||||
|
|
||||||
import java.awt.*;
|
public class SettingsMenu extends AbstractMenu {
|
||||||
|
|
||||||
import static eu.midnightdust.yaytris.ui.TetrisUI.scale;
|
|
||||||
import static eu.midnightdust.yaytris.ui.TetrisUI.setFontScale;
|
|
||||||
|
|
||||||
public class SettingsMenu extends JPanel {
|
|
||||||
final TetrisUI ui;
|
final TetrisUI ui;
|
||||||
|
|
||||||
SettingsMenu(int x, int y, int width, int height, TetrisUI ui) {
|
SettingsMenu(int x, int y, int width, int height, TetrisUI ui) {
|
||||||
@@ -20,19 +13,14 @@ public class SettingsMenu extends JPanel {
|
|||||||
this.setLayout(null);
|
this.setLayout(null);
|
||||||
|
|
||||||
JSlider scaleSlider = new JSlider(100, 500, (int) (Settings.guiScale * 100));
|
JSlider scaleSlider = new JSlider(100, 500, (int) (Settings.guiScale * 100));
|
||||||
scaleSlider.setBounds(scale(10), scale(20), scale(200), scale(20));
|
|
||||||
scaleSlider.setBackground(Color.DARK_GRAY);
|
|
||||||
scaleSlider.addChangeListener(change -> {
|
scaleSlider.addChangeListener(change -> {
|
||||||
Settings.guiScale = scaleSlider.getValue() / 100f;
|
Settings.guiScale = scaleSlider.getValue() / 100f;
|
||||||
Settings.write();
|
Settings.write();
|
||||||
});
|
});
|
||||||
setFontScale(scaleSlider);
|
|
||||||
this.add(scaleSlider);
|
this.add(scaleSlider);
|
||||||
|
|
||||||
JButton backButton = new JButton("Back");
|
JButton backButton = new JButton("Zurück");
|
||||||
backButton.addActionListener(ui::openMainMenu);
|
backButton.addActionListener(ui::openMainMenu);
|
||||||
backButton.setBounds(scale(60), scale(140), scale(100), scale(20));
|
|
||||||
setFontScale(backButton);
|
|
||||||
this.add(backButton);
|
this.add(backButton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"musicVolume": 100,
|
"musicVolume": 100,
|
||||||
"soundVolume": 100,
|
"soundVolume": 100,
|
||||||
"guiScale": 4.95
|
"guiScale": 4.62
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user