From 536c4534270a38d0ad3cb5782ff392e4b4680c12 Mon Sep 17 00:00:00 2001
From: vesal <vesa.t.lappalainen@jyu.fi>
Date: Sun, 28 Jan 2024 23:10:44 +0200
Subject: [PATCH] liev06

---
 luennot/live01/kerho/kanat/harrastukset.dat   |  0
 luennot/live04/.classpath                     | 12 +++
 luennot/live04/.project                       | 23 +++++
 luennot/live04/build.fxbuild                  |  8 ++
 .../src/fxYhdista/YhdistaGUIController.java   | 22 +++++
 .../live04/src/fxYhdista/YhdistaGUIView.fxml  | 53 ++++++++++++
 luennot/live04/src/fxYhdista/YhdistaMain.java | 38 ++++++++
 luennot/live04/src/fxYhdista/yhdista.css      |  1 +
 luennot/live04/src/live04/Alkuluku.java       | 58 +++++++++++++
 .../live04/src/live04/test/AlkulukuTest.java  | 28 ++++++
 luennot/live06/.classpath                     | 12 +++
 luennot/live06/.project                       | 23 +++++
 luennot/live06/build.fxbuild                  |  8 ++
 luennot/live06/src/example/Hello3.java        | 16 ++++
 .../muuttujat/matkaFX/MatkaGUIController.java | 86 +++++++++++++++++++
 .../src/muuttujat/matkaFX/MatkaGUIView.fxml   | 42 +++++++++
 .../src/muuttujat/matkaFX/MatkaMain.java      | 38 ++++++++
 .../live06/src/muuttujat/matkaFX/matka.css    |  1 +
 luennot/live06/src/viitteet/Jonotesti.java    | 51 +++++++++++
 19 files changed, 520 insertions(+)
 create mode 100644 luennot/live01/kerho/kanat/harrastukset.dat
 create mode 100644 luennot/live04/.classpath
 create mode 100644 luennot/live04/.project
 create mode 100644 luennot/live04/build.fxbuild
 create mode 100644 luennot/live04/src/fxYhdista/YhdistaGUIController.java
 create mode 100644 luennot/live04/src/fxYhdista/YhdistaGUIView.fxml
 create mode 100644 luennot/live04/src/fxYhdista/YhdistaMain.java
 create mode 100644 luennot/live04/src/fxYhdista/yhdista.css
 create mode 100644 luennot/live04/src/live04/Alkuluku.java
 create mode 100644 luennot/live04/src/live04/test/AlkulukuTest.java
 create mode 100644 luennot/live06/.classpath
 create mode 100644 luennot/live06/.project
 create mode 100644 luennot/live06/build.fxbuild
 create mode 100644 luennot/live06/src/example/Hello3.java
 create mode 100644 luennot/live06/src/muuttujat/matkaFX/MatkaGUIController.java
 create mode 100644 luennot/live06/src/muuttujat/matkaFX/MatkaGUIView.fxml
 create mode 100644 luennot/live06/src/muuttujat/matkaFX/MatkaMain.java
 create mode 100644 luennot/live06/src/muuttujat/matkaFX/matka.css
 create mode 100644 luennot/live06/src/viitteet/Jonotesti.java

diff --git a/luennot/live01/kerho/kanat/harrastukset.dat b/luennot/live01/kerho/kanat/harrastukset.dat
new file mode 100644
index 0000000..e69de29
diff --git a/luennot/live04/.classpath b/luennot/live04/.classpath
new file mode 100644
index 0000000..a5a3676
--- /dev/null
+++ b/luennot/live04/.classpath
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
+	<classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/luennot/live04/.project b/luennot/live04/.project
new file mode 100644
index 0000000..9533c89
--- /dev/null
+++ b/luennot/live04/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>live04</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	    <buildCommand>
+            <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+            <arguments>
+            </arguments>
+        </buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/luennot/live04/build.fxbuild b/luennot/live04/build.fxbuild
new file mode 100644
index 0000000..b220c62
--- /dev/null
+++ b/luennot/live04/build.fxbuild
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ASCII"?>
+<anttasks:AntTask xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:anttasks="http://org.eclipse.fx.ide.jdt/1.0" buildDirectory="${project}/build">
+  <deploy>
+    <application name="live04"/>
+    <info/>
+  </deploy>
+  <signjar/>
+</anttasks:AntTask>
diff --git a/luennot/live04/src/fxYhdista/YhdistaGUIController.java b/luennot/live04/src/fxYhdista/YhdistaGUIController.java
new file mode 100644
index 0000000..21a311d
--- /dev/null
+++ b/luennot/live04/src/fxYhdista/YhdistaGUIController.java
@@ -0,0 +1,22 @@
+package fxYhdista;
+
+import javafx.fxml.FXML;
+import javafx.scene.control.TextField;
+
+/**
+ * @author vesal
+ * @version 16.1.2024
+ *
+ */
+public class YhdistaGUIController {
+    @FXML private TextField editEtu;
+    @FXML private TextField editKoko;
+
+    @FXML private TextField editSuku;
+
+    @FXML void handleYhdista() {
+        String nimi = editEtu.getText() + " " + editSuku.getText();
+        editKoko.setText(nimi);
+
+    }
+}
\ No newline at end of file
diff --git a/luennot/live04/src/fxYhdista/YhdistaGUIView.fxml b/luennot/live04/src/fxYhdista/YhdistaGUIView.fxml
new file mode 100644
index 0000000..c2a15d7
--- /dev/null
+++ b/luennot/live04/src/fxYhdista/YhdistaGUIView.fxml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+
+<BorderPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/21" fx:controller="fxYhdista.YhdistaGUIController">
+   <center>
+      <VBox BorderPane.alignment="CENTER">
+         <children>
+            <HBox>
+               <children>
+                  <Label prefWidth="100.0" text="Etunimi" />
+                  <TextField fx:id="editEtu" />
+               </children>
+               <VBox.margin>
+                  <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+               </VBox.margin>
+            </HBox>
+            <HBox>
+               <children>
+                  <Label prefWidth="100.0" text="Sukunimi" />
+                  <TextField fx:id="editSuku" />
+               </children>
+               <VBox.margin>
+                  <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+               </VBox.margin>
+            </HBox>
+            <HBox>
+               <children>
+                  <Label prefWidth="100.0" text="Kokonimi" />
+                  <TextField fx:id="editKoko" />
+               </children>
+               <padding>
+                  <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+               </padding>
+            </HBox>
+         </children>
+      </VBox>
+   </center>
+   <bottom>
+      <Button mnemonicParsing="false" onAction="#handleYhdista" text="Yhdista" BorderPane.alignment="CENTER">
+         <BorderPane.margin>
+            <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+         </BorderPane.margin>
+      </Button>
+   </bottom>
+</BorderPane>
diff --git a/luennot/live04/src/fxYhdista/YhdistaMain.java b/luennot/live04/src/fxYhdista/YhdistaMain.java
new file mode 100644
index 0000000..a21e9c2
--- /dev/null
+++ b/luennot/live04/src/fxYhdista/YhdistaMain.java
@@ -0,0 +1,38 @@
+package fxYhdista;
+
+import javafx.application.Application;
+import javafx.stage.Stage;
+import javafx.scene.Scene;
+import javafx.scene.layout.Pane;
+import javafx.fxml.FXMLLoader;
+
+
+/**
+ * @author vesal
+ * @version 16.1.2024
+ *
+ */
+public class YhdistaMain extends Application {
+    @Override
+    public void start(Stage primaryStage) {
+        try {
+            FXMLLoader ldr = new FXMLLoader(getClass().getResource("YhdistaGUIView.fxml"));
+            final Pane root = ldr.load();
+            //final YhdistaGUIController yhdistaCtrl = (YhdistaGUIController) ldr.getController();
+            Scene scene = new Scene(root);
+            scene.getStylesheets().add(getClass().getResource("yhdista.css").toExternalForm());
+            primaryStage.setScene(scene);
+            primaryStage.setTitle("Yhdista");
+            primaryStage.show();
+        } catch(Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * @param args Ei kaytossa
+     */
+    public static void main(String[] args) {
+        launch(args);
+    }
+}
\ No newline at end of file
diff --git a/luennot/live04/src/fxYhdista/yhdista.css b/luennot/live04/src/fxYhdista/yhdista.css
new file mode 100644
index 0000000..83d6f33
--- /dev/null
+++ b/luennot/live04/src/fxYhdista/yhdista.css
@@ -0,0 +1 @@
+/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
\ No newline at end of file
diff --git a/luennot/live04/src/live04/Alkuluku.java b/luennot/live04/src/live04/Alkuluku.java
new file mode 100644
index 0000000..8b6381b
--- /dev/null
+++ b/luennot/live04/src/live04/Alkuluku.java
@@ -0,0 +1,58 @@
+package live04;
+
+/**
+ * @author vesal
+ * @version 16.1.2024
+ *
+ */
+public class Alkuluku {
+
+    /**
+     * @param args ei käytetössä
+     */
+    public static void main(String[] args) {
+        int luku = 25;
+        int jaollinen;
+        
+        jaollinen = millaJaollinen(luku);
+        
+        if ( jaollinen == 1)
+            System.out.println("alkuluku");
+         else
+            System.out.println("Jaollinen luvulla " + jaollinen);
+    }
+
+    
+    /**
+     * Aliohjelmalla tutkitaan onko parametrina tuotu
+     * luku alkuluku vai ei<br>
+     * 
+     * Algoritmi: Jaetaan tutkittavaa lukua jakajilla 2,3,5,7...luku/2.
+     * Jos jokin jako menee tasan, niin ei alkuluku.
+     * 
+     * @param luku tutkittava luku
+     * @return luvun jolla jaollinen tai 1 jos alkuluku
+     * @example
+     * <pre name="test">
+     *   millaJaollinen(25)  === 5;
+     *   millaJaollinen(2)   === 1;
+     *   millaJaollinen(4)   === 2;
+     *   millaJaollinen(123) === 3;
+     *   millaJaollinen(7)   === 1;
+     * </pre>
+     */
+    public static int millaJaollinen(int luku) {
+        int jakaja = 2;
+        int kasvatus = 1;
+        if (luku == 2) return 1;  
+        
+        do {
+            if (luku % jakaja == 0) return jakaja;  
+            jakaja += kasvatus;
+            kasvatus = 2;
+        } while (jakaja < luku/2);
+        
+        return 1;
+    }
+
+}
diff --git a/luennot/live04/src/live04/test/AlkulukuTest.java b/luennot/live04/src/live04/test/AlkulukuTest.java
new file mode 100644
index 0000000..a1f2e9a
--- /dev/null
+++ b/luennot/live04/src/live04/test/AlkulukuTest.java
@@ -0,0 +1,28 @@
+package live04.test;
+// Generated by ComTest BEGIN
+import static org.junit.Assert.*;
+import org.junit.*;
+import static live04.Alkuluku.*;
+// Generated by ComTest END
+
+/**
+ * Test class made by ComTest
+ * @version 2024.01.16 13:13:11 // Generated by ComTest
+ *
+ */
+@SuppressWarnings("all")
+public class AlkulukuTest {
+
+
+
+  // Generated by ComTest BEGIN
+  /** testMillaJaollinen36 */
+  @Test
+  public void testMillaJaollinen36() {    // Alkuluku: 36
+    assertEquals("From: Alkuluku line: 37", 5, millaJaollinen(25)); 
+    assertEquals("From: Alkuluku line: 38", 1, millaJaollinen(2)); 
+    assertEquals("From: Alkuluku line: 39", 2, millaJaollinen(4)); 
+    assertEquals("From: Alkuluku line: 40", 3, millaJaollinen(123)); 
+    assertEquals("From: Alkuluku line: 41", 1, millaJaollinen(7)); 
+  } // Generated by ComTest END
+}
\ No newline at end of file
diff --git a/luennot/live06/.classpath b/luennot/live06/.classpath
new file mode 100644
index 0000000..8c39f29
--- /dev/null
+++ b/luennot/live06/.classpath
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ohj2"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/luennot/live06/.project b/luennot/live06/.project
new file mode 100644
index 0000000..362de1c
--- /dev/null
+++ b/luennot/live06/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>live06</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	    <buildCommand>
+            <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+            <arguments>
+            </arguments>
+        </buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/luennot/live06/build.fxbuild b/luennot/live06/build.fxbuild
new file mode 100644
index 0000000..20938b1
--- /dev/null
+++ b/luennot/live06/build.fxbuild
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ASCII"?>
+<anttasks:AntTask xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:anttasks="http://org.eclipse.fx.ide.jdt/1.0" buildDirectory="${project}/build">
+  <deploy>
+    <application name="live06"/>
+    <info/>
+  </deploy>
+  <signjar/>
+</anttasks:AntTask>
diff --git a/luennot/live06/src/example/Hello3.java b/luennot/live06/src/example/Hello3.java
new file mode 100644
index 0000000..f2b11fd
--- /dev/null
+++ b/luennot/live06/src/example/Hello3.java
@@ -0,0 +1,16 @@
+package example;
+/**
+ * Ohjelma tulostaa kutsun mukana tulleet parametrit
+ * @author Vesa Lappalainen
+ * @version 1.0, 03.01.2003
+ */
+public class Hello3 {
+    /**
+     * @param args ei käytössä
+     */
+    public static void main(String[] args) {
+        System.out.println("Argumenttejä on " + args.length + " kappaletta:");
+        for(int i=0; i<args.length; i++)
+            System.out.println("Parametri " + i + ": " + args[i]);
+    }
+}
\ No newline at end of file
diff --git a/luennot/live06/src/muuttujat/matkaFX/MatkaGUIController.java b/luennot/live06/src/muuttujat/matkaFX/MatkaGUIController.java
new file mode 100644
index 0000000..3274e62
--- /dev/null
+++ b/luennot/live06/src/muuttujat/matkaFX/MatkaGUIController.java
@@ -0,0 +1,86 @@
+package muuttujat.matkaFX;
+import fi.jyu.mit.ohj2.Mjonot;
+
+import javafx.fxml.FXML;
+import javafx.scene.control.TextField;
+
+/**
+ * @author vesal
+ * @version 23.1.2024
+ *
+ */
+public class MatkaGUIController {
+    @FXML private TextField textKartalla;
+
+    @FXML private TextField textMaastossa;
+
+    @FXML private TextField textMittakaava;
+
+    @FXML void keyReleased() {
+        laske();
+    }
+    
+    // ======================================================
+    
+    /** Oletusmittakaava  */
+    public static final double MITTAKAAVA = 200000.0;
+
+    /** Kerroin mm muuttamiseksi km */
+    public static final double MM_KM = 1000.0 * 1000.0;
+    
+    
+    /**
+     * Haetaan tekstikentästä luku
+     * @param text kenttä josta haetaan
+     * @param oletus luvun arvo jos kentästä ei saa järkevää lukua
+     * @return kentästä haettu luku
+     * @example
+     * <pre name="test">
+     * #TOLERANCE=0.01
+     * #import javafx.embed.swing.JFXPanel;
+     * #import javafx.scene.control.*;
+     * (new JFXPanel()).toString(); 
+     * haeLuku(new TextField("234.233"), 44) ~~~ 234.23;
+     * haeLuku(new TextField("foobar1"), 44) ~~~ 44.00;
+     * haeLuku(new TextField("1foobar"), 44) ~~~ 1.00;
+     * </pre>
+     */
+    public static double haeLuku(TextField text,double oletus) {
+        double luku = Mjonot.erotaDouble(text.getText(), oletus);
+        return luku;
+    }
+
+    /**
+     * Muunnetaan kartalta mm mitattu matka maastoon km
+     * @param matka_mm kartalta mitattu matka mm
+     * @param mittakaava käytettävä mittakaava
+     * @return matka maastossa km
+     */
+    public static double mittakaavamuunnos(double matka_mm, double mittakaava) {
+        return mittakaava*matka_mm / MM_KM;
+    }
+    
+    /**
+     * Laittaa tekstikenttään tuloksen
+     * @param text kenttä johon luku laitetaan
+     * @param luku joka laitetaan kenttään
+     */
+    public static void laitaTulos(TextField text, double luku) {
+        String tulos = String.format("%5.2f",luku);
+        tulos = tulos.replace(',', '.');
+        text.setText(tulos);
+    }
+      
+    
+    /**
+     * Lasketaan uudet arvot muuttuneiden perusteella
+     */
+    private void laske() {
+        double mittakaava = haeLuku(textMittakaava,MITTAKAAVA);
+        double matka_mm = haeLuku(textKartalla, 0);
+        double matka_km = mittakaavamuunnos(matka_mm,mittakaava);
+        laitaTulos(textMaastossa,matka_km);
+    }    
+    
+    
+}
\ No newline at end of file
diff --git a/luennot/live06/src/muuttujat/matkaFX/MatkaGUIView.fxml b/luennot/live06/src/muuttujat/matkaFX/MatkaGUIView.fxml
new file mode 100644
index 0000000..86b5b8e
--- /dev/null
+++ b/luennot/live06/src/muuttujat/matkaFX/MatkaGUIView.fxml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.ColumnConstraints?>
+<?import javafx.scene.layout.GridPane?>
+<?import javafx.scene.layout.RowConstraints?>
+
+
+<BorderPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/21" fx:controller="muuttujat.matkaFX.MatkaGUIController">
+   <center>
+      <GridPane BorderPane.alignment="CENTER">
+        <columnConstraints>
+          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="150.0" />
+          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="10.0" />
+            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
+            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="40.0" />
+        </columnConstraints>
+        <rowConstraints>
+          <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
+          <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
+          <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
+        </rowConstraints>
+         <children>
+            <Label text="MIttakavaa" />
+            <Label text="Kartalat mitattu" GridPane.rowIndex="1" />
+            <Label text="Matka maastossa" GridPane.rowIndex="2" />
+            <Label text="1:" GridPane.columnIndex="1" />
+            <Label text="mm" GridPane.columnIndex="3" GridPane.rowIndex="1" />
+            <Label text="km" GridPane.columnIndex="3" GridPane.rowIndex="2" />
+            <TextField fx:id="textMittakaava" onKeyReleased="#keyReleased" GridPane.columnIndex="2" />
+            <TextField fx:id="textKartalla" onKeyReleased="#keyReleased" GridPane.columnIndex="2" GridPane.rowIndex="1" />
+            <TextField fx:id="textMaastossa" GridPane.columnIndex="2" GridPane.rowIndex="2" />
+         </children>
+         <padding>
+            <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+         </padding>
+      </GridPane>
+   </center>
+</BorderPane>
diff --git a/luennot/live06/src/muuttujat/matkaFX/MatkaMain.java b/luennot/live06/src/muuttujat/matkaFX/MatkaMain.java
new file mode 100644
index 0000000..94adace
--- /dev/null
+++ b/luennot/live06/src/muuttujat/matkaFX/MatkaMain.java
@@ -0,0 +1,38 @@
+package muuttujat.matkaFX;
+
+import javafx.application.Application;
+import javafx.stage.Stage;
+import javafx.scene.Scene;
+import javafx.scene.layout.Pane;
+import javafx.fxml.FXMLLoader;
+
+
+/**
+ * @author vesal
+ * @version 23.1.2024
+ *
+ */
+public class MatkaMain extends Application {
+    @Override
+    public void start(Stage primaryStage) {
+        try {
+            FXMLLoader ldr = new FXMLLoader(getClass().getResource("MatkaGUIView.fxml"));
+            final Pane root = ldr.load();
+            //final MatkaGUIController matkaCtrl = (MatkaGUIController) ldr.getController();
+            Scene scene = new Scene(root);
+            scene.getStylesheets().add(getClass().getResource("matka.css").toExternalForm());
+            primaryStage.setScene(scene);
+            primaryStage.setTitle("Matka");
+            primaryStage.show();
+        } catch(Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * @param args Ei kaytossa
+     */
+    public static void main(String[] args) {
+        launch(args);
+    }
+}
\ No newline at end of file
diff --git a/luennot/live06/src/muuttujat/matkaFX/matka.css b/luennot/live06/src/muuttujat/matkaFX/matka.css
new file mode 100644
index 0000000..83d6f33
--- /dev/null
+++ b/luennot/live06/src/muuttujat/matkaFX/matka.css
@@ -0,0 +1 @@
+/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
\ No newline at end of file
diff --git a/luennot/live06/src/viitteet/Jonotesti.java b/luennot/live06/src/viitteet/Jonotesti.java
new file mode 100644
index 0000000..99e5829
--- /dev/null
+++ b/luennot/live06/src/viitteet/Jonotesti.java
@@ -0,0 +1,51 @@
+package viitteet;
+
+/**
+ * Tutkitaan olioviitteiden käyttäytymistä
+ * @author Vesa Lappalainen
+ * @version 1.0, 08.01.20003
+ */
+public class Jonotesti {
+
+    private static void tulosta(boolean b) {
+        if (b)
+            System.out.println("Samat ovat");
+        else
+            System.out.println("Erilaiset ovat");
+    }
+
+
+    private static void ali(String s) {
+        System.out.println(s);
+    }
+    
+    
+    /**
+     * @param args ei käytössä
+     */
+    public static void main(String[] args) {
+        String s1 = "eka";
+        ali(s1);
+        String s2 = new String("eka");
+
+        tulosta(s1 == s2); // Erilaiset ovat
+        tulosta(s1.equals(s2)); // Samat ovat
+
+        int i1 = 11;
+        int i2 = 10 + 1;
+
+        tulosta(i1 == i2); // Samat ovat
+
+        Integer io1 = Integer.valueOf(3);
+        @SuppressWarnings("removal") // koska haluan luoda uuden
+        Integer io2 = new Integer(3);
+
+        tulosta(io1 == io2); // Erilaiset ovat
+        tulosta(io1.equals(io2)); // Samat ovat
+        tulosta(io1.intValue() == io2.intValue()); // Samat ovat
+
+        s2 = s1;
+        tulosta(s1 == s2);
+        s1 = null;
+    }
+}
\ No newline at end of file
-- 
GitLab