| 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