Skip to content
Snippets Groups Projects
Commit 7b1cfa3a authored by jez04's avatar jez04
Browse files

feat: init java2 lab 02

parent 9711341d
No related merge requests found
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>vsb-cs-java1</groupId> <groupId>cz.vsb.fei.java2</groupId>
<artifactId>lab11v3</artifactId> <artifactId>java2-lab02-v3</artifactId>
<version>0.0.1-SNAPHOST</version> <version>0.0.1-SNAPHOST</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<properties> <properties>
......
...@@ -31,8 +31,7 @@ public class App extends Application { ...@@ -31,8 +31,7 @@ public class App extends Application {
try { try {
this.primaryStage = primaryStage; this.primaryStage = primaryStage;
switchToMenu(); switchToMenu();
primaryStage.resizableProperty().set(false); primaryStage.setTitle("Java 2 - 2th laboratory");
primaryStage.setTitle("Java 1 - 1th laboratory");
primaryStage.show(); primaryStage.show();
// Exit program when main window is closed // Exit program when main window is closed
primaryStage.setOnCloseRequest(this::exitProgram); primaryStage.setOnCloseRequest(this::exitProgram);
......
...@@ -13,15 +13,15 @@ public class DbConnector { ...@@ -13,15 +13,15 @@ public class DbConnector {
private static final String JDBC_CONECTIN_STRING = "jdbc:h2:file:./scoreDB"; private static final String JDBC_CONECTIN_STRING = "jdbc:h2:file:./scoreDB";
public static List<Score> getAll() { public List<Score> getAll() {
return queryScore("select * from scores;"); return queryScore("select * from scores;");
} }
public static List<Score> getFirstTen() { public List<Score> getFirstTen() {
return queryScore("select * from scores order by points desc limit 10;"); return queryScore("select * from scores order by points desc limit 10;");
} }
private static List<Score> queryScore(String query) { private List<Score> queryScore(String query) {
List<Score> result = new ArrayList<>(); List<Score> result = new ArrayList<>();
try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING); try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING);
Statement stm = con.createStatement(); Statement stm = con.createStatement();
...@@ -35,7 +35,7 @@ public class DbConnector { ...@@ -35,7 +35,7 @@ public class DbConnector {
return result; return result;
} }
public static void createTable() { public void init() {
try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING); try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING);
Statement stm = con.createStatement();) { Statement stm = con.createStatement();) {
stm.executeUpdate("CREATE TABLE if not exists scores (nick VARCHAR(50) NOT NULL, points INT NOT NULL);"); stm.executeUpdate("CREATE TABLE if not exists scores (nick VARCHAR(50) NOT NULL, points INT NOT NULL);");
...@@ -44,7 +44,7 @@ public class DbConnector { ...@@ -44,7 +44,7 @@ public class DbConnector {
} }
} }
public static void insertScore(Score score) { public void insertScore(Score score) {
try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING); try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING);
PreparedStatement stm = con.prepareStatement("INSERT INTO scores VALUES (?, ?)");) { PreparedStatement stm = con.prepareStatement("INSERT INTO scores VALUES (?, ?)");) {
stm.setString(1, score.getName()); stm.setString(1, score.getName());
......
...@@ -73,17 +73,17 @@ public class GameController { ...@@ -73,17 +73,17 @@ public class GameController {
void btnGenerateScoreAction(ActionEvent event) { void btnGenerateScoreAction(ActionEvent event) {
Score score = Score.generate(); Score score = Score.generate();
this.scores.getItems().add(score); this.scores.getItems().add(score);
DbConnector.insertScore(score); ScoreStorageFactory.getInstance().insertScore(score);
} }
@FXML @FXML
void btnLoadAllAction(ActionEvent event) { void btnLoadAllAction(ActionEvent event) {
updateScoreTable(DbConnector.getAll()); updateScoreTable(ScoreStorageFactory.getInstance().getAll());
} }
@FXML @FXML
void btnLoadFirstTenAction(ActionEvent event) { void btnLoadFirstTenAction(ActionEvent event) {
updateScoreTable(DbConnector.getFirstTen()); updateScoreTable(ScoreStorageFactory.getInstance().getFirstTen());
} }
private void updateScoreTable(List<Score> scores) { private void updateScoreTable(List<Score> scores) {
......
...@@ -67,17 +67,17 @@ public class MainScreenController { ...@@ -67,17 +67,17 @@ public class MainScreenController {
void btnGenerateScoreAction(ActionEvent event) { void btnGenerateScoreAction(ActionEvent event) {
Score score = Score.generate(); Score score = Score.generate();
this.scores.getItems().add(score); this.scores.getItems().add(score);
DbConnector.insertScore(score); ScoreStorageFactory.getInstance().insertScore(score);
} }
@FXML @FXML
void btnLoadAllAction(ActionEvent event) { void btnLoadAllAction(ActionEvent event) {
updateScoreTable(DbConnector.getAll()); updateScoreTable(ScoreStorageFactory.getInstance().getAll());
} }
@FXML @FXML
void btnLoadFirstTenAction(ActionEvent event) { void btnLoadFirstTenAction(ActionEvent event) {
updateScoreTable(DbConnector.getFirstTen()); updateScoreTable(ScoreStorageFactory.getInstance().getFirstTen());
} }
private void updateScoreTable(List<Score> scores) { private void updateScoreTable(List<Score> scores) {
...@@ -101,8 +101,8 @@ public class MainScreenController { ...@@ -101,8 +101,8 @@ public class MainScreenController {
private void initDB() { private void initDB() {
// Stream.generate(Score::generate).limit(10).toList(); // Stream.generate(Score::generate).limit(10).toList();
DbConnector.createTable(); ScoreStorageFactory.getInstance().init();
scores.getItems().addAll(DbConnector.getAll()); scores.getItems().addAll(ScoreStorageFactory.getInstance().getAll());
} }
} }
package lab;
public class ScoreStorageFactory {
private static DbConnector instance;
public static DbConnector getInstance() {
if(instance == null) {
instance = new DbConnector();
}
return instance;
}
}
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<BorderPane fx:id="menuPanel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="436.0" prefWidth="660.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.MainScreenController"> <BorderPane fx:id="menuPanel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="519.0" prefWidth="830.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.MainScreenController">
<top> <top>
<HBox prefWidth="200.0" BorderPane.alignment="CENTER"> <HBox prefWidth="200.0" BorderPane.alignment="CENTER">
<children> <children>
...@@ -29,45 +29,47 @@ ...@@ -29,45 +29,47 @@
</font></Button> </font></Button>
</bottom> </bottom>
<center> <center>
<HBox prefHeight="100.0" prefWidth="200.0" BorderPane.alignment="CENTER"> <VBox prefHeight="200.0" prefWidth="100.0" BorderPane.alignment="CENTER">
<children> <children>
<RadioButton fx:id="easy" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Easy" HBox.hgrow="ALWAYS"> <HBox prefHeight="100.0" prefWidth="200.0">
<toggleGroup> <children>
<ToggleGroup fx:id="difficult" /> <RadioButton fx:id="easy" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Easy" HBox.hgrow="ALWAYS">
</toggleGroup> <toggleGroup>
<HBox.margin> <ToggleGroup fx:id="difficult" />
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" /> </toggleGroup>
</HBox.margin> <HBox.margin>
</RadioButton> <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
<RadioButton fx:id="medium" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" selected="true" styleClass="difficultButton" text="Medium" toggleGroup="$difficult" HBox.hgrow="ALWAYS"> </HBox.margin>
<HBox.margin> </RadioButton>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" /> <RadioButton fx:id="medium" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" selected="true" styleClass="difficultButton" text="Medium" toggleGroup="$difficult" HBox.hgrow="ALWAYS">
</HBox.margin> <HBox.margin>
</RadioButton> <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
<RadioButton fx:id="hard" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Hard" toggleGroup="$difficult" HBox.hgrow="ALWAYS"> </HBox.margin>
<HBox.margin> </RadioButton>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" /> <RadioButton fx:id="hard" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Hard" toggleGroup="$difficult" HBox.hgrow="ALWAYS">
</HBox.margin> <HBox.margin>
</RadioButton> <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</children> </HBox.margin>
</HBox> </RadioButton>
</center> </children>
<right> </HBox>
<VBox prefHeight="267.0" prefWidth="156.0" BorderPane.alignment="CENTER"> <VBox>
<children> <children>
<TableView fx:id="scores" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308"> <TableView fx:id="scores" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="2000.0">
<columns> <columns>
<TableColumn fx:id="nickColumn" prefWidth="75.0" text="Nick" /> <TableColumn fx:id="nickColumn" prefWidth="75.0" text="Nick" />
<TableColumn fx:id="pointsColumn" prefWidth="75.0" text="Points" /> <TableColumn fx:id="pointsColumn" prefWidth="75.0" text="Points" />
</columns> </columns>
<columnResizePolicy> <columnResizePolicy>
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
</columnResizePolicy> </columnResizePolicy>
</TableView> </TableView>
<Button fx:id="btnGenerateScore" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnGenerateScoreAction" text="Generate new score" /> <Button fx:id="btnGenerateScore" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnGenerateScoreAction" text="Generate new score" />
<Button fx:id="btnLoadAll" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnLoadAllAction" text="Load all from DB" /> <Button fx:id="btnLoadAll" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnLoadAllAction" text="Load all from DB" />
<Button fx:id="btnLoadFirstTen" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnLoadFirstTenAction" text="Load first 10 from DB" /> <Button fx:id="btnLoadFirstTen" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnLoadFirstTenAction" text="Load first 10 from DB" />
</children>
</VBox>
</children> </children>
</VBox> </VBox>
</right> </center>
</BorderPane> </BorderPane>
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment