Skip to content
Commits on Source (1)
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>vaihe2</name>
<name>trunk</name>
<comment></comment>
<projects>
</projects>
......
No preview for this file type
......@@ -6,13 +6,13 @@
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<?import fi.jyu.mit.fxgui.*?>
<BorderPane prefHeight="281.0" prefWidth="409.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.40">
<BorderPane prefHeight="281.0" prefWidth="409.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fi.jyu.mit.fxgui.ModalController">
<bottom>
<BorderPane BorderPane.alignment="CENTER">
<right>
<Button defaultButton="true" minWidth="70.0" mnemonicParsing="false" text="OK" BorderPane.alignment="CENTER" />
<Button defaultButton="true" minWidth="70.0" mnemonicParsing="false" onAction="#handleDefaultOK" text="OK" BorderPane.alignment="CENTER" />
</right>
<BorderPane.margin>
<Insets />
......
......@@ -13,7 +13,7 @@
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<BorderPane xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1">
<BorderPane xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fi.jyu.mit.fxgui.ModalController">
<bottom>
<VBox BorderPane.alignment="CENTER">
<children>
......@@ -21,8 +21,8 @@
<HBox />
<ButtonBar prefHeight="40.0" prefWidth="200.0">
<buttons>
<Button defaultButton="true" mnemonicParsing="false" text="OK" />
<Button cancelButton="true" mnemonicParsing="false" text="Cancel" />
<Button defaultButton="true" mnemonicParsing="false" onAction="#handleDefaultOK" text="OK" />
<Button cancelButton="true" mnemonicParsing="false" onAction="#handleDefaultCancel" text="Cancel" />
</buttons>
<padding>
<Insets right="10.0" />
......
......@@ -7,7 +7,7 @@
<?import javafx.scene.text.*?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1">
<BorderPane xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fi.jyu.mit.fxgui.ModalController">
<bottom>
<VBox BorderPane.alignment="CENTER">
<children>
......@@ -15,8 +15,8 @@
<HBox />
<ButtonBar prefHeight="40.0" prefWidth="200.0">
<buttons>
<Button defaultButton="true" mnemonicParsing="false" text="OK" />
<Button cancelButton="true" mnemonicParsing="false" text="Cancel" />
<Button defaultButton="true" mnemonicParsing="false" onAction="#handleDefaultOK" text="OK" />
<Button cancelButton="true" mnemonicParsing="false" onAction="#handleDefaultCancel" text="Cancel" />
</buttons>
<padding>
<Insets right="10.0" />
......
package fxKerho;
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ResourceBundle;
import fi.jyu.mit.fxgui.ComboBoxChooser;
import fi.jyu.mit.fxgui.Dialogs;
import fi.jyu.mit.fxgui.ModalController;
import javafx.application.Platform;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
/**
* Luokka kerhon käyttöliittymän tapahtumien hoitamiseksi.
*
* @author vesal
* @version 31.12.2015
* Luokka käyttöliittymän tapahtumien hoitamiseksi
* @version 5.1.2015
*/
public class KerhoGUIController {
public class KerhoGUIController implements Initializable {
@FXML private TextField hakuehto;
@FXML private ComboBoxChooser<String> cbKentat;
@FXML private Label labelVirhe;
private String kerhonnimi = "kelmit";
@Override
public void initialize(URL url, ResourceBundle bundle) {
//
}
@FXML private void handleHakuehto() {
String hakukentta = cbKentat.getSelectedText();
String ehto = hakuehto.getText();
if ( ehto.isEmpty() )
naytaVirhe(null);
else
naytaVirhe("Ei osata vielä hakea " + hakukentta + ": " + ehto);
}
@FXML private void handleTallenna() {
tallenna();
}
@FXML private void handleAvaa() {
avaa();
}
@FXML private void handleTulosta() {
TulostusController.tulosta(null);
}
@FXML private void handleLopeta() {
tallenna();
Platform.exit();
}
@FXML private void handleUusiJasen() {
Dialogs.showMessageDialog("Vielä ei osata lisätä jäsentä");
}
@FXML private void handleMuokkaaJasen() {
ModalController.showModal(KerhoGUIController.class.getResource("JasenDialogView.fxml"), "Jäsen", null, "");
}
@FXML private void handlePoistaJasen() {
Dialogs.showMessageDialog("Vielä ei osata poistaa jäsentä");
}
@FXML private void handleUusiHarrastus() {
Dialogs.showMessageDialog("Ei osata vielä lisätä harrastusta");
}
@FXML private void handleMuokkaaHarrastus() {
ModalController.showModal(KerhoGUIController.class.getResource("HarrastusDialogView.fxml"), "Harrastus", null, "");
}
@FXML private void handlePoistaHarrastus() {
Dialogs.showMessageDialog("Ei osata vielä poistaa harrastusta");
}
@FXML private void handleApua() {
avustus();
}
@FXML private void handleTietoja() {
// Dialogs.showMessageDialog("Ei osata vielä tietoja");
ModalController.showModal(KerhoGUIController.class.getResource("AboutView.fxml"), "Kerho", null, "");
}
//===========================================================================================
// Tästä eteenpäin ei käyttöliittymään suoraan liittyvää koodia
private void naytaVirhe(String virhe) {
if ( virhe == null || virhe.isEmpty() ) {
labelVirhe.setText("");
labelVirhe.getStyleClass().removeAll("virhe");
return;
}
labelVirhe.setText(virhe);
labelVirhe.getStyleClass().add("virhe");
}
private void setTitle(String title) {
ModalController.getStage(hakuehto).setTitle(title);
}
/**
* Käsitellään uuden jäsenen lisääminen
* Alustaa kerhon lukemalla sen valitun nimisestä tiedostosta
* @param nimi tiedosto josta kerhon tiedot luetaan
*/
@FXML private void handleUusiJasen() {
// Dialogs.showMessageDialog("Ei osata vielä lisätä");
// Dialogs.showMessageDialog("Tiedosto kelmit/nimet.dat ei aukea");
Dialogs.showQuestionDialog("Poisto?", "Poistetaanko jäsen: Hopo Hessu", "Kyllä", "Ei");
protected void lueTiedosto(String nimi) {
kerhonnimi = nimi;
setTitle("Kerho - " + kerhonnimi);
String virhe = "Ei osata lukea vielä"; // TODO: tähän oikea tiedoston lukeminen
// if (virhe != null)
Dialogs.showMessageDialog(virhe);
}
/**
* Kysytään tiedoston nimi ja luetaan se
* @return true jos onnistui, false jos ei
*/
public boolean avaa() {
String uusinimi = KerhonNimiController.kysyNimi(null, kerhonnimi);
if (uusinimi == null) return false;
lueTiedosto(uusinimi);
return true;
}
/**
* Tietojen tallennus
*/
private void tallenna() {
Dialogs.showMessageDialog("Tallennetetaan! Mutta ei toimi vielä");
}
/**
* Tarkistetaan onko tallennus tehty
* @return true jos saa sulkea sovelluksen, false jos ei
*/
public boolean voikoSulkea() {
tallenna();
return true;
}
/**
* Näytetään ohjelman suunnitelma erillisessä selaimessa.
*/
private void avustus() {
Desktop desktop = Desktop.getDesktop();
try {
URI uri = new URI("https://tim.jyu.fi/view/kurssit/tie/ohj2/2019k/ht/vesal");
desktop.browse(uri);
} catch (URISyntaxException e) {
return;
} catch (IOException e) {
return;
}
}
}
......@@ -27,19 +27,19 @@
<menus>
<Menu text="_Tiedosto">
<items>
<MenuItem text="_Tallenna">
<MenuItem onAction="#handleTallenna" text="_Tallenna">
<accelerator>
<KeyCodeCombination alt="UP" code="S" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
</accelerator>
</MenuItem>
<MenuItem text="Avaa...">
<MenuItem onAction="#handleAvaa" text="Avaa...">
</MenuItem>
<MenuItem mnemonicParsing="false" text="Tulosta...">
<MenuItem mnemonicParsing="false" onAction="#handleTulosta" text="Tulosta...">
<accelerator>
<KeyCodeCombination alt="UP" code="T" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="true" text="L_opeta">
<MenuItem mnemonicParsing="true" onAction="#handleLopeta" text="L_opeta">
<accelerator>
<KeyCodeCombination alt="UP" code="Q" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
</accelerator>
......@@ -48,44 +48,44 @@
</Menu>
<Menu mnemonicParsing="true" text="_Muokkaa">
<items>
<MenuItem mnemonicParsing="true" text="Uusi jäsen">
<MenuItem mnemonicParsing="true" onAction="#handleUusiJasen" text="Uusi jäsen">
<accelerator>
<KeyCodeCombination alt="UP" code="N" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="true" text="Muokkaa jäsentä...">
<MenuItem mnemonicParsing="true" onAction="#handleMuokkaaJasen" text="Muokkaa jäsentä...">
<accelerator>
<KeyCodeCombination alt="UP" code="E" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="true" text="Lisää harrastus">
<MenuItem mnemonicParsing="true" onAction="#handleUusiHarrastus" text="Lisää harrastus">
<accelerator>
<KeyCodeCombination alt="UP" code="H" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="true" text="Muokkaa harrastusta...">
<MenuItem mnemonicParsing="true" onAction="#handleMuokkaaHarrastus" text="Muokkaa harrastusta...">
<accelerator>
<KeyCodeCombination alt="UP" code="U" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
</accelerator>
</MenuItem>
<MenuItem mnemonicParsing="false" text="Poista jäsen...">
<MenuItem mnemonicParsing="false" onAction="#handlePoistaJasen" text="Poista jäsen...">
</MenuItem>
<MenuItem mnemonicParsing="false" text="Poista harrastus">
<MenuItem mnemonicParsing="false" onAction="#handlePoistaHarrastus" text="Poista harrastus">
</MenuItem>
</items>
</Menu>
<Menu mnemonicParsing="true" text="_Apua">
<items>
<MenuItem mnemonicParsing="false" text="Apua">
<MenuItem mnemonicParsing="false" onAction="#handleApua" text="Apua">
</MenuItem>
<MenuItem mnemonicParsing="false" text="Tietoja..." />
<MenuItem mnemonicParsing="false" onAction="#handleTietoja" text="Tietoja..." />
</items>
</Menu>
</menus>
</MenuBar>
</top>
<center>
<SplitPane dividerPositions="0.27, 0.66" BorderPane.alignment="CENTER">
<SplitPane dividerPositions="0.27235772357723576, 0.6605691056910569" BorderPane.alignment="CENTER">
<items>
<BorderPane maxWidth="150.0" minWidth="100.0" prefWidth="138.0">
<center>
......@@ -95,8 +95,8 @@
<VBox BorderPane.alignment="CENTER">
<children>
<Label alignment="CENTER" maxWidth="300.0" text="Hakuehto" />
<TextField />
<ComboBoxChooser maxWidth="200.0" rivit="nimi&#10;hetu&#10;katuosoite&#10;postinumero&#10;kotipuhelin&#10;työpuhelin&#10;autopuhelin&#10;liittymisvuosi&#10;jäsenmaksu&#10;maksettu maksu&#10;lisätietoja" />
<ComboBoxChooser fx:id="cbKentat" maxWidth="200.0" onAction="#handleHakuehto" rivit="nimi&#10;hetu&#10;katuosoite&#10;postinumero&#10;kotipuhelin&#10;työpuhelin&#10;autopuhelin&#10;liittymisvuosi&#10;jäsenmaksu&#10;maksettu maksu&#10;lisätietoja" />
<TextField fx:id="hakuehto" onKeyReleased="#handleHakuehto" />
<Label alignment="CENTER" maxWidth="300.0" text="Jäsenet" />
</children>
</VBox>
......@@ -165,7 +165,7 @@
</ScrollPane>
</center>
<bottom>
<Label alignment="CENTER" maxWidth="1.7976931348623157E308" BorderPane.alignment="CENTER" />
<Label fx:id="labelVirhe" alignment="CENTER" maxWidth="1.7976931348623157E308" BorderPane.alignment="CENTER" />
</bottom>
</BorderPane>
<BorderPane>
......@@ -192,7 +192,7 @@
<Tooltip text="Lisää uuden jäsenen kerhoon" />
</tooltip>
</Button>
<Button mnemonicParsing="false" text="Tallenna">
<Button mnemonicParsing="false" onAction="#handleTallenna" text="Tallenna">
<tooltip>
<Tooltip text="Tallentaa kerhon tiedot" />
</tooltip></Button>
......@@ -205,11 +205,11 @@
<right>
<HBox spacing="10.0" BorderPane.alignment="CENTER">
<children>
<Button mnemonicParsing="true" text="Lisää _harrastus">
<Button mnemonicParsing="true" onAction="#handleUusiHarrastus" text="Lisää _harrastus">
<tooltip>
<Tooltip text="Lisää jäsenelle uuden harrastuksen" />
</tooltip></Button>
<Button mnemonicParsing="false" text="Poista harrastus">
<Button mnemonicParsing="false" onAction="#handlePoistaHarrastus" text="Poista harrastus">
<tooltip>
<Tooltip text="Poistetaan kohdalla oleva harrastus" />
</tooltip></Button>
......
package fxKerho;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.fxml.FXMLLoader;
/**
* @author vesal
* @version 31.12.2015
* @version 31.12.2016
*
* Pääohjelma Kerho-ohjelman käynnistämiseksi
*/
public class KerhoMain extends Application {
@Override
public void start(Stage primaryStage) {
try {
BorderPane root = (BorderPane)FXMLLoader.load(getClass().getResource("KerhoGUIView.fxml"));
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("kerho.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.setTitle("Kerho");
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public void start(Stage primaryStage) {
try {
final FXMLLoader ldr = new FXMLLoader(getClass().getResource("KerhoGUIView.fxml"));
final Pane root = (Pane)ldr.load();
final KerhoGUIController kerhoCtrl = (KerhoGUIController)ldr.getController();
final Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("kerho.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.setTitle("Kerho");
// Platform.setImplicitExit(false); // tätä ei kai saa laittaa
primaryStage.setOnCloseRequest((event) -> {
if ( !kerhoCtrl.voikoSulkea() ) event.consume();
});
primaryStage.show();
if ( !kerhoCtrl.avaa() ) Platform.exit();
} catch(Exception e) {
e.printStackTrace();
}
}
/**
* Käynnistetään käyttöliittymä
......
package fxKerho;
import fi.jyu.mit.fxgui.ModalController;
import fi.jyu.mit.fxgui.ModalControllerInterface;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
/**
* Kystään kerhon nimi ja luodaan tätä varten dialogi.
*
* @author vesal
* @version 2.1.2016
*/
public class KerhonNimiController implements ModalControllerInterface<String> {
@FXML private TextField textVastaus;
private String vastaus = null;
@FXML private void handleOK() {
vastaus = textVastaus.getText();
ModalController.closeStage(textVastaus);
}
@FXML private void handleCancel() {
ModalController.closeStage(textVastaus);
}
@Override
public String getResult() {
return vastaus;
}
@Override
public void setDefault(String oletus) {
textVastaus.setText(oletus);
}
/**
* Mitä tehdään kun dialogi on näytetty
*/
@Override
public void handleShown() {
textVastaus.requestFocus();
}
/**
* Luodaan nimenkysymisdialogi ja palautetaan siihen kirjoitettu nimi tai null
* @param modalityStage mille ollaan modaalisia, null = sovellukselle
* @param oletus mitä nimeä näytetään oletuksena
* @return null jos painetaan Cancel, muuten kirjoitettu nimi
*/
public static String kysyNimi(Stage modalityStage, String oletus) {
return ModalController.showModal(
KerhonNimiController.class.getResource("KerhonNimiView.fxml"),
"Kerho",
modalityStage, oletus);
}
}
......@@ -7,8 +7,7 @@
<?import javafx.scene.text.*?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane prefHeight="295.0" prefWidth="468.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.40">
<BorderPane prefHeight="295.0" prefWidth="468.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxKerho.KerhonNimiController">
<center>
<VBox alignment="CENTER" style="-fx-background-color: #ffff99;" BorderPane.alignment="CENTER">
<children>
......@@ -36,7 +35,7 @@
<Insets left="10.0" right="10.0" top="10.0" />
</padding>
</Label>
<TextField text="kelmit" HBox.hgrow="ALWAYS">
<TextField fx:id="textVastaus" text="kelmit" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding>
......@@ -48,8 +47,8 @@
</HBox>
<ButtonBar prefHeight="40.0" prefWidth="200.0">
<buttons>
<Button defaultButton="true" mnemonicParsing="false" text="OK" />
<Button cancelButton="true" mnemonicParsing="false" text="Cancel" />
<Button defaultButton="true" mnemonicParsing="false" onAction="#handleOK" text="OK" />
<Button cancelButton="true" mnemonicParsing="false" onAction="#handleCancel" text="Cancel" />
</buttons>
<padding>
<Insets right="10.0" />
......
package fxKerho;
import fi.jyu.mit.fxgui.Dialogs;
import fi.jyu.mit.fxgui.ModalController;
import fi.jyu.mit.fxgui.ModalControllerInterface;
import javafx.fxml.FXML;
import javafx.scene.control.TextArea;
/**
* Tulostuksen hoitava luokka
*
* @author vesal
* @version 4.1.2016
*/
public class TulostusController implements ModalControllerInterface<String> {
@FXML TextArea tulostusAlue;
@FXML private void handleOK() {
ModalController.closeStage(tulostusAlue);
}
@FXML private void handleTulosta() {
Dialogs.showMessageDialog("Ei osata vielä tulostaa");
}
@Override
public String getResult() {
return null;
}
@Override
public void setDefault(String oletus) {
if ( oletus == null ) return;
tulostusAlue.setText(oletus);
}
/**
* Mitä tehdään kun dialogi on näytetty
*/
@Override
public void handleShown() {
//
}
/**
* Näyttää tulostusalueessa tekstin
* @param tulostus tulostettava teskti
*/
public static void tulosta(String tulostus) {
ModalController.showModeless(TulostusController.class.getResource("TulostusView.fxml"),
"Tulostus", tulostus);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.*?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane prefHeight="497.0" prefWidth="354.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.40">
<BorderPane prefHeight="497.0" prefWidth="354.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxKerho.TulostusController">
<bottom>
<ButtonBar prefHeight="40.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<buttons>
<Button mnemonicParsing="false" text="Tulosta" />
<Button defaultButton="true" mnemonicParsing="false" text="OK" />
<Button mnemonicParsing="false" onAction="#handleTulosta" text="Tulosta" />
<Button defaultButton="true" mnemonicParsing="false" onAction="#handleOK" text="OK" />
</buttons>
<padding>
<Insets right="10.0" />
......@@ -20,6 +20,10 @@
</ButtonBar>
</bottom>
<center>
<TextArea prefHeight="200.0" prefWidth="200.0" text="Valitut jäsenet&#10;----------------------------------------------&#10;id : 4&#10;nimi : Ankka Iines&#10;hetu : 020406&#10;katuosoite : Ankkakuja 9&#10;postinumero : 12345&#10;postiosoite : ANKKALINNA&#10;kotipuhelin : 12-1234&#10;työpuhelin : &#10;autopuhelin : &#10;liittymisvuosi : 1996&#10;jäsenmaksu : 50.00&#10;maksettumaksu : 0.00&#10;lisätietoja : Velkaa Roopelle&#10;----------------------------------------------&#10;Naisten kerho 1967 36&#10;Meikkaaminen 1942 45&#10;Keimailu 1971 31&#10;Keilailu 1972 5&#10;&#10;&#10;&#10;----------------------------------------------&#10;id : 5&#10;nimi : Susi Sepe&#10;hetu : 020347-123T&#10;katuosoite : &#10;postinumero : 12555&#10;postiosoite : Takametsä&#10;kotipuhelin : &#10;työpuhelin : &#10;autopuhelin : &#10;liittymisvuosi : 1962&#10;jäsenmaksu : 50.00&#10;maksettumaksu : 0.00&#10;lisätietoja : &#10;----------------------------------------------&#10;possujen jahtaaminen 1954 20&#10;kelmien kerho 1962 2&#10;" BorderPane.alignment="CENTER" />
<TextArea fx:id="tulostusAlue" prefHeight="200.0" prefWidth="200.0" text="Valitut jäsenet&#10;----------------------------------------------&#10;id : 4&#10;nimi : Ankka Iines&#10;hetu : 020406&#10;katuosoite : Ankkakuja 9&#10;postinumero : 12345&#10;postiosoite : ANKKALINNA&#10;kotipuhelin : 12-1234&#10;työpuhelin : &#10;autopuhelin : &#10;liittymisvuosi : 1996&#10;jäsenmaksu : 50.00&#10;maksettumaksu : 0.00&#10;lisätietoja : Velkaa Roopelle&#10;----------------------------------------------&#10;Naisten kerho 1967 36&#10;Meikkaaminen 1942 45&#10;Keimailu 1971 31&#10;Keilailu 1972 5&#10;&#10;&#10;&#10;----------------------------------------------&#10;id : 5&#10;nimi : Susi Sepe&#10;hetu : 020347-123T&#10;katuosoite : &#10;postinumero : 12555&#10;postiosoite : Takametsä&#10;kotipuhelin : &#10;työpuhelin : &#10;autopuhelin : &#10;liittymisvuosi : 1962&#10;jäsenmaksu : 50.00&#10;maksettumaksu : 0.00&#10;lisätietoja : &#10;----------------------------------------------&#10;possujen jahtaaminen 1954 20&#10;kelmien kerho 1962 2&#10;" BorderPane.alignment="CENTER">
<font>
<Font name="Consolas" size="12.0" />
</font>
</TextArea>
</center>
</BorderPane>
/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
\ No newline at end of file
.virhe {
/* @SuppressWarning */
-fx-background-color: red;
}
.normaali {
/* @SuppressWarning */
-fx-background-color: white;
}
\ No newline at end of file