| IntKentta.java |
1 package kanta;
2 import javax.swing.SwingConstants;
3
4 import fi.jyu.mit.ohj2.Mjonot;
5
6 /**
7 * Kenttä kokonaislukujen tallentamiseksi
8 * @author vesal
9 * @version 31.3.2008
10 *
11 */
12 public class IntKentta extends PerusKentta {
13 private int arvo;
14
15 /**
16 * Alustetaan kenttä kysymyksellä.
17 * @param kysymys joka näytetään kenttää kysyttäessä.
18 */
19 public IntKentta(String kysymys) { super(kysymys); }
20
21 /**
22 * @return kentän arvo kokonaislukuna
23 */
24 public int getValue() { return arvo; }
25
26 /**
27 * Asetetaan kentän arvo kokonaislukuna
28 * @param value asetettava kokonaislukuarvo
29 */
30 public void setValue(int value) { arvo = value; }
31
32 /**
33 * Kentän arvo merkkijonona.
34 * @return kenttä merkkijonona
35 * @example
36 * <pre name="test">
37 * IntKentta kentta = new IntKentta("määrä");
38 * kentta.aseta("12") === null;
39 * kentta.toString() === "12";
40 * </pre>
41 */
42 @Override
43 public String toString() {
44 return ""+arvo;
45 }
46
47
48
49 /**
50 * Asetetaan kentän arvo merkkijonosta. Jos jono
51 * kunnollinen, palautetaan null. Jos jono ei
52 * kunnollinen int-syöte, palautetaan virheilmoitus ja
53 * kentän alkuperäinen arvo jää voimaan.
54 * @param jono kentään asetettava arvo mekrkijonona
55 * @return null jos hyvä arvo, muuten virhe.
56 * @see kanta.PerusKentta#aseta(java.lang.String)
57 *
58 * @example
59 * <pre name="test">
60 * IntKentta kentta = new IntKentta("määrä");
61 * kentta.aseta("12") === null; kentta.getValue() === 12;
62 * kentta.aseta("k") === "Ei kokonaisluku (k)"; kentta.getValue() === 12;
63 * </pre>
64 */
65 @Override
66 public String aseta(String jono) {
67 StringBuffer sb = new StringBuffer(jono);
68 try {
69 this.arvo = Mjonot.erotaEx(sb,' ',0);
70 return null;
71 }
72 catch (NumberFormatException ex) {
73 return "Ei kokonaisluku (" + jono + ")";
74 }
75 }
76
77 /**
78 * Palauttaa kentän tiedot veratiltavana merkkijonona
79 * @return vertailtava merkkijono kentästä
80 * @example
81 * <pre name="test">
82 * IntKentta kentta = new IntKentta("määrä");
83 * kentta.aseta("12"); kentta.getAvain() === " 12";
84 * kentta.aseta("1"); kentta.getAvain() === " 1";
85 * kentta.aseta("999"); kentta.getAvain() === " 999";
86 *
87 * </pre>
88 */
89 @Override
90 public String getAvain() {
91 return Mjonot.fmt(arvo, 10);
92 }
93
94 /**
95 * @return syväkopio oliosta
96 * @example
97 * <pre name="test">
98 * #THROWS CloneNotSupportedException
99 * IntKentta kentta = new IntKentta("määrä");
100 * kentta.aseta("12");
101 * IntKentta klooni = (IntKentta)kentta.clone();
102 * kentta.getValue() === klooni.getValue();
103 * kentta.aseta("13");
104 * kentta.getValue() === 13;
105 * klooni.getValue() === 12;
106 * </pre>
107 */
108 @Override
109 public IntKentta clone() throws CloneNotSupportedException {
110 return (IntKentta)super.clone();
111 }
112
113 /**
114 * @return vaakasuuntainen sijainti kentälle
115 */
116 @Override
117 public int getSijainti() {
118 return SwingConstants.RIGHT;
119 }
120 }
121