Files
artloglaby/java/org/artisanlogiciel/games/maze/gui/MazeSettings.java
philippe lhardy dae5e763e9 add a slider to set maze width/height
- from 1 to 100.
2020-10-16 10:55:32 +02:00

71 lines
2.3 KiB
Java

package org.artisanlogiciel.games.maze.gui;
import org.artisanlogiciel.games.MazeParams;
import org.artisanlogiciel.games.MazeParamsFixed;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.util.Random;
public class MazeSettings extends JPanel {
MazeParams params;
JTextField textWidth = null;
JTextField textHeight = null;
JTextField textDepth = null;
JTextField textSeed = null;
// TODO set width and height and depth of maze with gui
public MazeSettings(MazeParams params) {
super();
this.params = params;
createSettingsGui();
}
void createSettingsGui() {
if (params != null) {
final JSlider slider = new JSlider(1, 100);
slider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
// settextWidthWallSize(slider.getValue());
String valueStr = "" + slider.getValue();
textWidth.setText(valueStr);
textHeight.setText(valueStr);
}
});
add(slider);
JLabel widthLabel = new JLabel(Display.labels.getString("width"));
textWidth = new JTextField("0" + params.getWidth());
add(widthLabel);
add(textWidth);
JLabel heightLabel = new JLabel(Display.labels.getString("height"));
textHeight = new JTextField("0" + params.getHeight());
add(heightLabel);
add(textHeight);
JLabel depthLabel = new JLabel(Display.labels.getString("depth"));
textDepth = new JTextField("0" + params.getMaxDepth());
add(depthLabel);
add(textDepth);
JLabel seedLabel = new JLabel(Display.labels.getString("seed"));
textSeed = new JTextField( "" + params.getSeed(),16);
add(seedLabel);
add(textSeed);
}
}
public MazeParams resetParams() {
params = new MazeParamsFixed(params.getSaveDir(),
Integer.parseInt(textWidth.getText()),
Integer.parseInt(textHeight.getText()),
Integer.parseInt(textDepth.getText()),
new Random().nextLong()
);
textSeed.setText("" + params.getSeed());
return params;
}
}