first commit
This commit is contained in:
30
Ugesedler/Ugeseddel-12 26-11-2025/.gitignore
vendored
Normal file
30
Ugesedler/Ugeseddel-12 26-11-2025/.gitignore
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
### IntelliJ IDEA ###
|
||||
out/
|
||||
!**/src/main/**/out/
|
||||
!**/src/test/**/out/
|
||||
.kotlin
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
bin/
|
||||
!**/src/main/**/bin/
|
||||
!**/src/test/**/bin/
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
||||
8
Ugesedler/Ugeseddel-12 26-11-2025/.idea/.gitignore
generated
vendored
Normal file
8
Ugesedler/Ugeseddel-12 26-11-2025/.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
7
Ugesedler/Ugeseddel-12 26-11-2025/.idea/misc.xml
generated
Normal file
7
Ugesedler/Ugeseddel-12 26-11-2025/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="KubernetesApiProvider"><![CDATA[{}]]></component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="zulu-21" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
8
Ugesedler/Ugeseddel-12 26-11-2025/.idea/modules.xml
generated
Normal file
8
Ugesedler/Ugeseddel-12 26-11-2025/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/Ugeseddel-12 26-11-2025.iml" filepath="$PROJECT_DIR$/Ugeseddel-12 26-11-2025.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
BIN
Ugesedler/Ugeseddel-12 26-11-2025/CounterGUI.zip
Normal file
BIN
Ugesedler/Ugeseddel-12 26-11-2025/CounterGUI.zip
Normal file
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
27
Ugesedler/Ugeseddel-12 26-11-2025/iLoveJavaFX.tex
Normal file
27
Ugesedler/Ugeseddel-12 26-11-2025/iLoveJavaFX.tex
Normal file
@@ -0,0 +1,27 @@
|
||||
\documentclass[12pt,a4paper]{article}
|
||||
|
||||
\usepackage[cm,empty]{fullpage}
|
||||
\usepackage{parskip}
|
||||
\usepackage{url}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\emph{\LARGE Individuel aflevering - Opgave med JavaFX (uge 11)}
|
||||
|
||||
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.
|
||||
|
||||
\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}
|
||||
|
||||
% Slet den givne opgavetekst i dokumentet (altså alt bortset fra selve løsningen); LaTeX-præamblen og document-miljøet beholdes selvfølgelig.
|
||||
% Der skal afleveres en PDF-fil genereret af LaTeX (benyt fx Overleaf) samt den ovennævnte videooptagelse
|
||||
% LaTeX-filen skal ikke afleveres (men den bør dog gemmes)
|
||||
|
||||
\begin{verbatim}
|
||||
\end{verbatim}
|
||||
|
||||
\end{document}
|
||||
46
Ugesedler/Ugeseddel-12 26-11-2025/src/RandomWalk.java
Normal file
46
Ugesedler/Ugeseddel-12 26-11-2025/src/RandomWalk.java
Normal file
@@ -0,0 +1,46 @@
|
||||
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;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
24
Ugesedler/Ugeseddel-12 26-11-2025/src/TicTacToe.java
Normal file
24
Ugesedler/Ugeseddel-12 26-11-2025/src/TicTacToe.java
Normal file
@@ -0,0 +1,24 @@
|
||||
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;
|
||||
|
||||
public class TicTacToe extends Application {
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
primaryStage.setTitle("Tic Tac Toe");
|
||||
|
||||
}
|
||||
public static void main(String[] args) {launch(args);}
|
||||
}
|
||||
Reference in New Issue
Block a user