package kanta; import javax.swing.SwingConstants; import fi.jyu.mit.ohj2.Mjonot; /** * Kenttä reaalilukuja varten. * @author vesal * @version 31.3.3008 * */ public class DoubleKentta extends PerusKentta { private double arvo; /** * Alustetaan kenttä kysymyksellä * @param kysymys joka esitetään kentän kohdalla */ public DoubleKentta(String kysymys) { super(kysymys,new DesimaaliTarkistaja()); } /** * @return Kentän arvo reaalilukuna */ public double getValue() { return arvo; } /** * Asetetaan kentän arvo reaalilukuna * @param value kentän uusi arvo reaalilukuna */ public void setValue(double value) { arvo = value; } /** * @return kentän arvo merkkijonona * @see kanta.PerusKentta#toString() */ @Override public String toString() { return ""+arvo; } /** * @param jono jono jaoka asetetaan. Vääristä jonoista * arvoksi jää muuttumatta * @see kanta.PerusKentta#aseta(java.lang.String) * @example *
     * DoubleKentta kentta = new DoubleKentta("summa");
     * kentta.aseta("kissa") === "Ei desimaaliluku";  kentta.getValue() ~~~ 0.0; 
     * kentta.aseta("12.7")  === null;  kentta.getValue() ~~~ 12.7; 
     * kentta.aseta("32k7")  === "Ei desimaaliluku";  kentta.getValue() ~~~ 12.7; 
     * 
*/ @Override public String aseta(String jono) { String virhe = null; if ( tarkistaja != null ) virhe = tarkistaja.tarkista(jono); if ( virhe != null ) return virhe; this.arvo = Mjonot.erotaDouble(jono,0.0); return null; } /** * Palauttaa kentän tiedot veratiltavana merkkijonona * @return vertailtava merkkijono kentästä * @example *
     * DoubleKentta kentta = new DoubleKentta("määrä");
     *                                         //  123456789012345678
     * kentta.aseta("12");  kentta.getAvain() === "         12.000000";
     * kentta.aseta("1");   kentta.getAvain() === "          1.000000";
     * kentta.aseta("999"); kentta.getAvain() === "        999.000000";
     *   
     * 
*/ @Override public String getAvain() { return Mjonot.fmt(arvo, 18,6); } /** * @return vaakasuuntainen sijainti kentälle */ @Override public int getSijainti() { return SwingConstants.RIGHT; } }