This commit is contained in:
2025-11-27 12:03:50 +01:00
parent c5f25901e1
commit 7d790d8126
3 changed files with 50 additions and 10 deletions

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View File

@@ -7,12 +7,13 @@
\begin{document}
\emph{\LARGE Individuel aflevering - Opgave med JavaFX (uge 11)}
Rasmus Rosendahl-Kaa (S255955)
Skriv et JavaFX-program \verb+RandomWalk+, der indeholder et vindue med en knap midtpå og en label i bunden, der viser et heltal initialiseret med 0. På knappen skal der enten stå "Up" eller "Down" -- der startes med en tilfældig mulighed (50\,\% sandsynlighed hver), og hver gang der trykkes på knappen, skal der eksekveres en optælling ($+1$) eller nedtælling ($-1$) på labelen afhængig af knappens tekst. Efter klikket skal knappens tekst igen ændres tilfældigt. Du skal bruge \verb+BorderPane+ til layoutet og lambda-udtryk til at håndtere museklik på knappen.
%Skriv et JavaFX-program \verb+RandomWalk+, der indeholder et vindue med en knap midtpå og en label i bunden, der viser et heltal initialiseret med 0. På knappen skal der enten stå "Up" eller "Down" -- der startes med en tilfældig mulighed (50\,\% sandsynlighed hver), og hver gang der trykkes på knappen, skal der eksekveres en optælling ($+1$) eller nedtælling ($-1$) på labelen afhængig af knappens tekst. Efter klikket skal knappens tekst igen ændres tilfældigt. Du skal bruge \verb+BorderPane+ til layoutet og lambda-udtryk til at håndtere museklik på knappen.
Udover at aflevere en PDF-fil med JavaFX-programmet skal du lave en videooptagelse, der viser, hvordan du kompilerer og starter programmet fra kommandolinjen og hvordan labelen ændrer sig, mens du klikker mindst 10 gange på knappen. Videoen må maks.\ vare 30 sekunder og skal lægges op i \verb+.mp4+-format.
%Udover at aflevere en PDF-fil med JavaFX-programmet skal du lave en videooptagelse, der viser, hvordan du kompilerer og starter programmet fra kommandolinjen og hvordan labelen ændrer sig, mens du klikker mindst 10 gange på knappen. Videoen må maks.\ vare 30 sekunder og skal lægges op i \verb+.mp4+-format.
\emph{Hint:} Man kan bruge det indbyggede \emph{Snipping Tool} i Windows (Windows+Shift+R) eller \emph{Screen Recording Tool} på Mac (Shift+Command+5) til at lave videoen.
%\emph{Hint:} Man kan bruge det indbyggede \emph{Snipping Tool} i Windows (Windows+Shift+R) eller \emph{Screen Recording Tool} på Mac (Shift+Command+5) til at lave videoen.
% INDSÆT KILDEKODEN AF DIT JAVA-PROGRAM HERUNDER MELLEM \begin{verbatim} og \end{verbatim}
@@ -22,6 +23,46 @@ Udover at aflevere en PDF-fil med JavaFX-programmet skal du lave en videooptagel
% LaTeX-filen skal ikke afleveres (men den bør dog gemmes)
\begin{verbatim}
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import java.util.Random;
public class RandomWalk extends Application {
private Button button = new Button();
private int counter = 0;
private Label label = new Label("" + this.counter);
private final Random random = new Random();
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Random Walk");
this.button.setText((random.nextBoolean() ? "Up" : "Down"));
BorderPane borderPane = new BorderPane();
borderPane.setPadding(new Insets(20, 20,20,20));
borderPane.setCenter(this.button);
BorderPane.setAlignment(this.button, Pos.CENTER);
borderPane.setBottom(label);
BorderPane.setAlignment(label, Pos.BOTTOM_CENTER);
Scene scene = new Scene(borderPane, 300, 250);
primaryStage.setScene(scene);
this.button.setOnAction(e -> {
counter += (button.getText().equals("Up") ? 1 : -1);
button.setText((random.nextBoolean() ? "Up" : "Down"));
label.setText("" + counter);
});
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
\end{verbatim}
\end{document}

7
Ugesedler/Ugeseddel-12 26-11-2025/src/RandomWalk.java Normal file → Executable file
View File

@@ -1,17 +1,10 @@
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.util.Random;