Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tie/ohj2/ve/2025/kevat/ohj2
  • hasemajo/ohj2
  • nikaleko/ohj2
  • tntvanha/ohj2
  • lemaline/ohj2
  • rintahe/ohj2
  • tersaton/ohj2
  • tornhale/ohj2
  • pjyypiix/ohj-2
  • aneejoko/ohj2
  • reponaw/ohj2
  • saarian/ohj2
  • niemimm/ohj2
  • jppaasww/ohj2-2025k
  • ssniinim/ohj2
  • niememan/ohj2
  • milimaas/ohj2
  • kallmovu/ohj2
  • adaoliro/ohj2
  • tojuhann/ohj2
  • vevejuha/ohj2
  • mieikrla/ohj2
  • miankort/ohj2
  • saeteppo/ohj2
  • saelripa/ohj2
  • saniitty/ohj2
  • nsmietyt/ohj2
  • mikkolto/ohj2
  • mmuhonen/ohj2k25
  • saukkota/ohj-2-ht
  • eenorta/ohj2
  • oapaaso/ht-2
  • eeeeoino/ohj2
  • hietmaem/ohj2
  • vvlaspa/ohj2ht
  • lalaajal/ohj2
  • pepartyy/ohj2
  • loukovjv/ohj2
  • vihtkaan/ohj2
  • annelinu/ohjelmointi2
  • lehtikmi/ohj2
  • ihakalel/ohj2
  • aichinos/ohj2
  • lahteela/ohj-2-ht
  • pellrata/ohj2
  • iljinisa/ohj2
  • nkeuren/ohj2
  • hiltunma/ohj2
  • esshelkr/ohj2
  • vianelo/ohj2
  • kousaepw/ohj-2-ht
  • amheikkz/ohj2
  • jatirkko/ohj2
  • akharine/ohj2
  • rlokilja/ohj2
  • eskrliim/ohj2
  • masakoiv/ohj2
  • toivjope/ohj2
  • sasalons/ohj2
  • hirvepjw/ohj2
  • lajoveps/vuororekisteri
  • lelitirr/ohj-225
  • juhsansa/ohj2
  • essmarpe/ohj2
  • lehtlrvt/ohj2
  • setilus/ohj2
  • julipits/ohj2
  • kivistve/ohj2
  • erpajala/ohj2
  • pslohi/ohj2
  • sediiv/ohj2
  • jovesaar/ohj2
  • jutaalko/ohj2
  • valltoha/ohj2
  • ruotvive/ohj2ht
  • kkvalke/ohj2
  • aetuukka/espanjakohderekisteri
  • pdanilei/ohj2ht
  • lahtlule/ohj2
  • jaemvahu/ohj2
  • kantsiii/ohj2
  • tototuru/ohj2
  • elmotabe/ohj2
  • sutinele/ohj2
  • vepajuna/ohj2
  • tornittu/reseptilista
  • sasoleht/ohj2
  • eemjorto/ohj2
  • gagolzar/ohj2
  • sievanee/ohj2
  • nobekail/ohj2
  • mamiparv/ohj2
  • halolpvz/ohj2
  • tukilo/ohj2
  • mmleppis/ohj2
  • tmruisma/ohj2
  • aajataip/ohj-2
  • salonevs/ohj-2
  • ygulusen/ohj2
  • saarakka/ohj2
  • eakoskix/ohj2
  • lamminm/ohj2ht
  • sellmmv/salibandynpelaajarekisteri
  • tuoskopp/ohj2
  • haarates/ohj-2
  • jormlsuu/ohj2
  • lihiauka/ohj2
  • eeemkarv/ohj2
  • uekolehm/ohj2
  • smkolari/ohj-2-a
  • spicjrxz/ohj2
  • maalvirt/ohj-2-ht
  • hietaolo/ohj2ht
  • rtmatilt/ohj2
  • veevjoen/ohj2
  • lainejee/ohj2
  • pohtojoj/tuotelistaaja
  • jokayli/ohj2
  • sulasaal/ohj2
  • kalloupe/ohj2
  • apeshhhh/ohj2
  • kopperp/ohj2
  • garammtu/ohj2
  • ettalaes/ohj2
  • rajanije/ohj2
  • timovaan/ohj2
  • mkvuonos/ohj2
  • tuomiluu/ohj2
  • konttijm/ohj2
  • palolala/ohj2
  • vejokauk/ohj2
  • peihanus/ohj2
  • itsario/ohj2
  • hejumivu/ohj2
  • isojarto/ohj2
  • pirinpot/ohj2ht
  • oihietan/ohj2
  • niemhizz/ohj2
  • oparve/ohj2
  • truhtejo/ohj-2-ht
  • malineps/ohj-2-pelivalikoima
  • kylkii/ohj2
  • emigrank/ohj2
  • samavakk/ohj2
  • lausofla/ohj2
  • arossors/ohj-2-2
  • nurmsajo/ohj2
  • mattarma/ohj2
  • akjuhesa/ohj-2-ht
  • ovevalka/ohj2
  • lequyanh/ohj-2-ht
  • jasyvays/ohj2
  • lindtope/ohj2
  • kaipainm/ohj2
  • peillips/ohj2
  • miwamich/ohj2
  • anpahypp/ohj2harkka
  • kreenk/ohj2
  • iiaumaoi/ohj2
  • jmsutizy/ohj-2-25
  • conrcsir/ohj2
  • palaakho/ht-metsastyspaivakirja
  • makelkjt/ohj2
  • jooantni/ohj2
  • ttkelaw/ohj-2-2025-k
  • koivishe/kuntohalli-oy
  • laleiho/harjoitustyo-ohj-2
  • joolmatt/ohj2-ht
  • akrasa/ohj2
  • rikretel/ohj-2-ht
  • vuorelma/ohj2
171 results
Show changes
Commits on Source (30)
Showing with 1000 additions and 6 deletions
Luokan nimi: Naytto Avustajat: Projektit, Tehtavat
-Toimii API:na eli pyytää ja välittää tarvittavat tiedot Projekti ja Tehtava luokilta jotka taas noutavat asiat omista .dat tiedostoista
————————————————————————————————————————————————————————
Luokan nimi: Projektit Avustajat: Projekti
-lisää ja poistaa projekteja
-lukee ja kirjoittaa projektit.dat tiedostoa
-etsii ja lajittelee
-tietää suoritettujen ja suorittamattomien tehtävien lukumäärä ja huolehtii sitä kautta status kentästä
————————————————————————————————————————————————————————
Luokan nimi: Projekti Avustajat: Tehtavat
-Kommunikoi tehtavat kanssa ja tätä kautta luo statuksen
(Tieto montako tehtävää on suoritettu kaikista tehtävistä)
————————————————————————————————————————————————————————
Luokan nimi: Tehtavat (tehtävät) Avustajat:Projekti, Tehtävä
-Vastaa tehtävien järjestelystä ja etsimisestä
-Tietää onko tehtävä suoritettu vai suorittamaton
-lukee ja kirjoittaa tehtavat.dat tiedostoa
————————————————————————————————————————————————————————
Luokan nimi: Tehtava Avustajat:
-Huolehtii omista tiedoista
-tarkastaa syötettyn tiedon formaatin (parse)
# pohja
Pohja kevään 2025 harjoitustöiden GIT-repoille
Lue käyttöohjeet TIMistä: <https://tim.jyu.fi/view/kurssit/tie/ohj2/tyokalut/git/ohj2git#fork>
Harakka tehtävien hallinta ohjelma
kuvat/Harakka tietorakenne.jpg

406 KiB

kuvat/HarakkaMain.jpeg

37 KiB

kuvat/HarakkaStat.jpeg

14.6 KiB

kuvat/harakkakaynnistys.png

12.6 KiB

kuvat/hierarkia.jpg

49.9 KiB

kuvat/tehta.jpg

73 KiB

kuvat/tiles.jpg

80.8 KiB

package fxHarakka;
import fi.jyu.mit.fxgui.Dialogs;
import fi.jyu.mit.fxgui.ModalController;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.Pane;
public class HarakkaController {
@FXML
private Button p1t1;
@FXML
private Button p1t2;
@FXML
private Button p1t3;
@FXML
private Button p2t1;
@FXML
private Button p2t2;
@FXML
private CheckBox piilotaVkl;
@FXML
private MenuItem sulje;
@FXML
private Button tile1_1;
@FXML
private Button tile1_2;
@FXML
private Button tile1_3;
@FXML
private Button tile1_4;
@FXML
private Button tile1_5;
@FXML
private Button tile2_1;
@FXML
private Button tile2_2;
@FXML
private Button tile2_3;
@FXML
private Button tile2_4;
@FXML
private Button tile2_5;
@FXML
private Button tile3_1;
@FXML
private Button tile3_2;
@FXML
private Button tile3_3;
@FXML
private Button tile3_4;
@FXML
private Button tile3_5;
@FXML
private Button tile4_1;
@FXML
private Button tile4_2;
@FXML
private Button tile4_3;
@FXML
private Button tile4_4;
@FXML
private Button tile4_5;
@FXML
private Button tile5_1;
@FXML
private Button tile5_2;
@FXML
private Button tile5_3;
@FXML
private Button tile5_4;
@FXML
private Button tile5_5;
@FXML
private Button tile6_1;
@FXML
private Button tile6_2;
@FXML
private Button tile6_3;
@FXML
private Button tile6_4;
@FXML
private Button tile6_5;
@FXML
private Button tile7_1;
@FXML
private Button tile7_2;
@FXML
private Button tile7_3;
@FXML
private Button tile7_4;
@FXML
private Button tile7_5;
@FXML
private Button uusiPro;
@FXML
private Button uusiTeht;
@FXML
void HandleMuokkaa(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Tästä saat muokattua");
}
@FXML
void HandlePiilota(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Tästä saat piilotettua viikonlopun");
}
@FXML
void handleLisaaPro(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Tästä saat lisättyä projektin");
}
@FXML
void handleLisaaTeht(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Tästä saat lisättyä tehtävän");
}
@FXML
void handleMuokkaa(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Tästä saat muokattua tehtävää");
}
@FXML
void handleTehtava(ActionEvent event) {
ModalController.showModal(HarakkaController.class.getResource("Oksa.fxml"), "Muokkaa", null, "");
}
@FXML
void handleTile(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Tästä saat muokattua tileä");
}
@FXML
void suljeOhjelma(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Sulkee ohjelman");
}
@FXML
void handlePoistaPro(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Poistaa projektin");
}
@FXML
void handleApu(ActionEvent event) {
Dialogs.showMessageDialog("Myöhemmin: Saat lisätietoja ohjelmasta");
}
}
package fxHarakka;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.fxml.FXMLLoader;
/**
* @author rennekiljala, Jaakko Matilainen
* @version 23.1.2025
*/
public class HarakkaMain extends Application {
@Override
public void start(Stage primaryStage) {
try {
FXMLLoader ldr = new FXMLLoader(getClass().getResource("HarakkaView.fxml"));
final Pane root = ldr.load();
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("harakka.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.setTitle("Harakka");
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args Ei käytössä
*/
public static void main(String[] args) {
launch(args);
}
}
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ButtonBar?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.ProgressBar?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.RowConstraints?>
<SplitPane dividerPositions="0.5, 0.510590015128593" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="445.0" prefWidth="663.0" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1">
<items>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
<children>
<TitledPane animated="false" layoutX="31.0" layoutY="32.0" prefHeight="443.0" prefWidth="327.0" text="Status" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="0.0" prefWidth="38.0">
<children>
<Button layoutX="23.0" layoutY="367.0" mnemonicParsing="false" text="Tallenna" />
<Button layoutX="98.0" layoutY="367.0" mnemonicParsing="false" text="Hylkää muutokset" />
<TextField layoutX="56.0" layoutY="37.0" prefHeight="26.0" prefWidth="206.0" text="Lisää &quot;ei toimi&quot; promptit" />
<TextField layoutX="56.0" layoutY="70.0" prefHeight="26.0" prefWidth="206.0" text="Lisää sample data" />
<CheckBox layoutX="31.0" layoutY="41.0" mnemonicParsing="false" />
<CheckBox layoutX="31.0" layoutY="74.0" mnemonicParsing="false" />
<ProgressBar layoutX="30.0" layoutY="329.0" prefHeight="20.0" prefWidth="254.0" progress="0.0" />
</children>
</AnchorPane>
</content>
</TitledPane>
</children></AnchorPane>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0" />
<TitledPane animated="false" prefHeight="443.0" prefWidth="327.0" text="Tehtävän tiedot">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="0.0" prefWidth="38.0">
<children>
<TextArea layoutX="22.0" layoutY="200.0" prefHeight="109.0" prefWidth="278.0" promptText="Lisätietoja" />
<Pane layoutX="23.0" layoutY="-7.0" prefHeight="200.0" prefWidth="252.0" />
<GridPane gridLinesVisible="true" layoutX="10.0" layoutY="10.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="130.22607421875" minWidth="10.0" prefWidth="101.00753784179688" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="123.17330932617188" minWidth="10.0" prefWidth="98.99246215820312" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="123.17330932617188" minWidth="10.0" prefWidth="100.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>
<opaqueInsets>
<Insets />
</opaqueInsets>
<children>
<TextField text="Kiinteä aika:" GridPane.rowIndex="1" />
<TextField promptText="muotoa 1,1 - 1,4" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<TextField GridPane.columnIndex="2" GridPane.rowIndex="1" />
<TextField text="Ajankohta:" GridPane.rowIndex="2" />
<TextField GridPane.columnIndex="2" GridPane.rowIndex="2" />
<TextField promptText="pv.tt." GridPane.columnIndex="1" GridPane.rowIndex="2" />
<TextField />
<TextField GridPane.columnIndex="2" />
<TextField GridPane.columnIndex="1" />
</children>
</GridPane>
<ButtonBar layoutX="15.0" layoutY="362.0" prefHeight="40.0" prefWidth="282.0">
<buttons>
<Button mnemonicParsing="false" text="Ohje" />
</buttons>
</ButtonBar>
</children>
</AnchorPane>
</content>
</TitledPane>
</items>
</SplitPane>
package fxHarakka;
/**
* Tää on siis luokka joka sisältää "projekti" alustajia ja sen metodeita.
* Tehään tällein jotta asiat löytyy helposti oikeista paikoista
*
* eli kun käyttöliittymästä painetaan luo projekti nii hypätään tänne
* kutsumaan aliohjelmaa luo projekti
*
*
*/
public class Projekti {
private int id; //projekti id --> ensimmäinen projekti 1
private String nimi; //projektin nimi
private String aihe; //en tiiä onko vielä käyttöä mut voidaan leimata projekti tietyks aiheeks
//samalla aiheella sama värikoodaus käyttöliittymässä
private static int seuraavaNro = 1;
//default parametritön muodostaja
public Projekti() {
this.id = 0;
this.nimi = "";
this.aihe = "";
}
//parametrillinen muodostaja
public Projekti(int id, String nimi, String aihe){
this.id = id;
this.nimi = nimi;
this.aihe = aihe;
}
public static Projekti luoProjekti(String nimi, String aihe){ //static koska ei tarvita this
int nro = seuraavaNro++; // huom jälkilisäys
Projekti projekti = new Projekti(nro, nimi, aihe);
return projekti;
}
public int getId() {
return id;
}
public String getNimi() {
return nimi;
}
public String getAihe() {
return aihe;
}
@Override
public String toString(){
String strg = this.nimi + " | " + this.aihe + " | " + this.id;
return strg;
}
//maini testaamista varten
public static void main(String[] args){
Projekti testi1 = luoProjekti("kvantti", "fysiikka");
System.out.println(testi1);
Projekti testi2 = luoProjekti("Nakki", "Keitto");
System.out.println(testi2); //ID toimii
}
}
package fxHarakka;
public class Tehtava {
private String nimi; //tehtävän nimi
//private Pvm pvm; //päivämäärä TODO otetaan kommenteista pois kun Pvm luokka tehty
//private Aika aika; // TODO tehään myös aika luokka
private int id; //tehtävän id numero
private static int seuraavaNro = 1; //countteri missä tehtävässä mennään
/**
*TODO sitten kun Pvm ja Aika luokat lisätty ne pitää lisätä muodostajaan ja ainakin tällä hetkellä
* lisaa Tehtaa metodiin
*/
//parametritön muodostaja
public Tehtava() {
this.nimi = "";
}
//parametrillinen muodostaja
public Tehtava(String nimi, int id) {
this.nimi = nimi;
this.id = id;
}
public Tehtava lisaaTehtava(String nimi, int id) {
Tehtava tehtava = new Tehtava(nimi, id);
return tehtava;
}
}
/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
\ No newline at end of file
File added
/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
\ No newline at end of file