Skip to content
Snippets Groups Projects
Commit 536c4534 authored by Vesa Lappalainen's avatar Vesa Lappalainen :bicyclist:
Browse files

liev06

parent f6a4f9c7
No related branches found
No related tags found
No related merge requests found
Showing
with 520 additions and 0 deletions
<?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>
<?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>
<?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>
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
<?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>
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
/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
\ No newline at end of file
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;
}
}
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
<?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>
<?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>
<?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>
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
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
<?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>
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
/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
\ No newline at end of file
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment