#17 melkein valmis, vaatii vielä testaamista

This commit is contained in:
2026-05-13 01:56:21 +03:00
parent 71b06ff075
commit 9cc55be771
8 changed files with 136 additions and 30 deletions
+89 -9
View File
@@ -1,14 +1,27 @@
package fi.lpam.gui;
import fi.lpam.Main;
import fi.lpam.gui.elementit.TabPohja;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.Spinner;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Font;
import java.util.Properties;
public class Asetukset extends TabPohja {
private static final Properties prop = Main.properties;
private static final ObservableList<String> järjestelmäFontit = FXCollections.observableArrayList(Font.getFamilies());
public Asetukset() {
BorderPane root = new BorderPane();
root.setPadding(oletusInsets);
@@ -16,23 +29,90 @@ public class Asetukset extends TabPohja {
HBox yläpalkki = new HBox();
yläpalkki.setSpacing(5);
yläpalkki.setAlignment(Pos.CENTER_RIGHT);
Button btnTallenna = new Button("Tallenna");
btnTallenna.setFont(buttonFont);
btnTallenna.setOnAction(e -> tallennaAsetukset());
yläpalkki.getChildren().add(btnTallenna);
Button btnNollaa = new Button("Palauta oletukset");
btnNollaa.setFont(buttonFont);
btnNollaa.setOnAction(_ -> palautaOletukset());
yläpalkki.getChildren().add(btnNollaa);
root.setTop(yläpalkki);
root.setLeft(getFonttiAsetukset());
root.setCenter(new Label("Asetukset"));
Label asetukset = new Label("Asetukset");
asetukset.setFont(tekstiFont);
root.setRight(asetukset);
this.getChildren().add(root);
}
private void tallennaAsetukset() {
throw new RuntimeException("Not implemented");
private Spinner<Integer> tekstiFonttiKoko, buttonFonttiKoko, tulostusFonttiKoko, insets;
private ComboBox<String> tekstiFontti, buttonFontti;
private int minFonttiKoko = 8;
private int maxFonttiKoko = 30;
private int stepFontti = 1;
/**
* Luo paneelin fonttien asetusten säätämiseen
* @return paneeli
*/
private GridPane getFonttiAsetukset() {
GridPane root = new GridPane();
root.setAlignment(Pos.CENTER);
root.setHgap(10);
root.setVgap(10);
root.setBorder(oletusBorder);
root.setPadding(oletusInsets);
int row = 0;
Label otsikko = new Label("Fonttien asetukset");
otsikko.setFont(tekstiFont);
root.addRow(row++, otsikko);
tekstiFonttiKoko = new Spinner<>(minFonttiKoko, maxFonttiKoko, Double.parseDouble(prop.getProperty("tekstiFonttiKoko")), stepFontti);
tekstiFonttiKoko.setEditable(true);
tekstiFonttiKoko.valueProperty().addListener((_) -> prop.setProperty("tekstiFonttiKoko", String.valueOf(tekstiFonttiKoko.getValue())));
Label tekstinKoko = new Label("Tekstin koko");
tekstinKoko.setFont(tekstiFont);
root.addRow(row++, tekstinKoko, tekstiFonttiKoko);
tekstiFontti = new ComboBox<>();
tekstiFontti.setItems(järjestelmäFontit);
tekstiFontti.getSelectionModel().select(prop.getProperty("tekstiFontti"));
tekstiFontti.valueProperty().addListener((_) -> prop.setProperty("tekstiFontti", tekstiFontti.getValue()));
Label tekstinFontti = new Label("Tekstin fontti");
tekstinFontti.setFont(tekstiFont);
root.addRow(row++, tekstinFontti, tekstiFontti);
buttonFonttiKoko = new Spinner<>(minFonttiKoko, maxFonttiKoko, Double.parseDouble(prop.getProperty("buttonFonttiKoko")), stepFontti);
buttonFonttiKoko.valueProperty().addListener((_) -> prop.setProperty("buttonFonttiKoko", String.valueOf(buttonFonttiKoko.getValue())));
Label nappiTekstinKoko = new Label("Painikkeiden koko");
nappiTekstinKoko.setFont(tekstiFont);
root.addRow(row++, nappiTekstinKoko, buttonFonttiKoko);
buttonFontti = new ComboBox<>();
buttonFontti.setItems(järjestelmäFontit);
buttonFontti.getSelectionModel().select(prop.getProperty("buttonFontti"));
buttonFontti.valueProperty().addListener((_) -> prop.setProperty("buttonFontti", buttonFontti.getValue()));
Label napinFontti = new Label("Painikkeiden fontti");
napinFontti.setFont(tekstiFont);
root.addRow(row++, napinFontti, buttonFontti);
tulostusFonttiKoko = new Spinner<>(minFonttiKoko, maxFonttiKoko, Double.parseDouble(prop.getProperty("tulostusFonttiKoko")), stepFontti);
tulostusFonttiKoko.valueProperty().addListener((_) -> prop.setProperty("tulostusFonttiKoko", String.valueOf(tulostusFonttiKoko.getValue())));
Label tulostusFontinKoko = new Label("Tulostusfontin koko");
tulostusFontinKoko.setFont(tekstiFont);
root.addRow(row++, tulostusFontinKoko, tulostusFonttiKoko);
insets = new Spinner<>(0, 10, Double.parseDouble(prop.getProperty("insets")), 1);
insets.valueProperty().addListener((_) -> prop.setProperty("insets", String.valueOf(insets.getValue())));
Label insetsi = new Label("Yleinen fyllinki");
insetsi.setFont(tekstiFont);
root.addRow(row++, insetsi, insets);
return root;
}
private void näytäAsetukset() {
throw new RuntimeException("Not implemented");
private void palautaOletukset() {
}
}