DoubleKentta.java |
1 package kanta; 2 import javax.swing.SwingConstants; 3 4 import fi.jyu.mit.ohj2.Mjonot; 5 6 /** 7 * Kenttä reaalilukuja varten. 8 * @author vesal 9 * @version 31.3.3008 10 * 11 */ 12 public class DoubleKentta extends PerusKentta { 13 private double arvo; 14 15 /** 16 * Alustetaan kenttä kysymyksellä 17 * @param kysymys joka esitetään kentän kohdalla 18 */ 19 public DoubleKentta(String kysymys) { super(kysymys,new DesimaaliTarkistaja()); } 20 21 /** 22 * @return Kentän arvo reaalilukuna 23 */ 24 public double getValue() { return arvo; } 25 26 /** 27 * Asetetaan kentän arvo reaalilukuna 28 * @param value kentän uusi arvo reaalilukuna 29 */ 30 public void setValue(double value) { arvo = value; } 31 32 /** 33 * @return kentän arvo merkkijonona 34 * @see kanta.PerusKentta#toString() 35 */ 36 @Override 37 public String toString() { return ""+arvo; } 38 39 40 /** 41 * @param jono jono jaoka asetetaan. Vääristä jonoista 42 * arvoksi jää muuttumatta 43 * @see kanta.PerusKentta#aseta(java.lang.String) 44 * @example 45 * <pre name="test"> 46 * DoubleKentta kentta = new DoubleKentta("summa"); 47 * kentta.aseta("kissa") === "Ei desimaaliluku"; kentta.getValue() ~~~ 0.0; 48 * kentta.aseta("12.7") === null; kentta.getValue() ~~~ 12.7; 49 * kentta.aseta("32k7") === "Ei desimaaliluku"; kentta.getValue() ~~~ 12.7; 50 * </pre> 51 */ 52 @Override 53 public String aseta(String jono) { 54 String virhe = null; 55 if ( tarkistaja != null ) virhe = tarkistaja.tarkista(jono); 56 if ( virhe != null ) return virhe; 57 this.arvo = Mjonot.erotaDouble(jono,0.0); 58 return null; 59 } 60 61 /** 62 * Palauttaa kentän tiedot veratiltavana merkkijonona 63 * @return vertailtava merkkijono kentästä 64 * @example 65 * <pre name="test"> 66 * DoubleKentta kentta = new DoubleKentta("määrä"); 67 * // 123456789012345678 68 * kentta.aseta("12"); kentta.getAvain() === " 12.000000"; 69 * kentta.aseta("1"); kentta.getAvain() === " 1.000000"; 70 * kentta.aseta("999"); kentta.getAvain() === " 999.000000"; 71 * 72 * </pre> 73 */ 74 @Override 75 public String getAvain() { 76 return Mjonot.fmt(arvo, 18,6); 77 } 78 79 /** 80 * @return vaakasuuntainen sijainti kentälle 81 */ 82 @Override 83 public int getSijainti() { 84 return SwingConstants.RIGHT; 85 } 86 } 87