| 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 * @return Kentän arvo merkkijonona
34 * @see kanta.PerusKentta#toString()
35 */
36 @Override
37 public String toString() {
38 return ""+arvo;
39 }
40
41
42
43 /**
44 * Asetetaan kentän arvo merkkijonosta. Jos jono
45 * kunnollinen, palautetaan null. Jos jono ei
46 * kunnollinen int-syöte, palautetaan virheilmoitus ja
47 * kentän alkuperäinen arvo jää voimaan.
48 * @param jono kentään asetettava arvo mekrkijonona
49 * @return null jos hyvä arvo, muuten virhe.
50 * @see kanta.PerusKentta#aseta(java.lang.String)
51 *
52 * @example
53 * <pre name="test">
54 * IntKentta kentta = new IntKentta("määrä");
55 * kentta.aseta("12") === null; kentta.getValue() === 12;
56 * kentta.aseta("k") === "Ei kokonaisluku (k)"; kentta.getValue() === 12;
57 * </pre>
58 */
59 @Override
60 public String aseta(String jono) {
61 StringBuffer sb = new StringBuffer(jono);
62 try {
63 this.arvo = Mjonot.erotaEx(sb,' ',0);
64 return null;
65 }
66 catch (NumberFormatException ex) {
67 return "Ei kokonaisluku (" + jono + ")";
68 }
69 }
70
71 /**
72 * Palauttaa kentän tiedot veratiltavana merkkijonona
73 * @return vertailtava merkkijono kentästä
74 * @example
75 * <pre name="test">
76 * IntKentta kentta = new IntKentta("määrä");
77 * kentta.aseta("12"); kentta.getAvain() === " 12";
78 * kentta.aseta("1"); kentta.getAvain() === " 1";
79 * kentta.aseta("999"); kentta.getAvain() === " 999";
80 *
81 * </pre>
82 */
83 @Override
84 public String getAvain() {
85 return Mjonot.fmt(arvo, 10);
86 }
87
88 /**
89 * @return syväkopio oliosta
90 * @example
91 * <pre name="test">
92 * #THROWS CloneNotSupportedException
93 * IntKentta kentta = new IntKentta("määrä");
94 * kentta.aseta("12");
95 * IntKentta klooni = (IntKentta)kentta.clone();
96 * kentta.getValue() === klooni.getValue();
97 * kentta.aseta("13");
98 * kentta.getValue() === 13;
99 * klooni.getValue() === 12;
100 * </pre>
101 */
102 @Override
103 public Kentta clone() throws CloneNotSupportedException {
104 return super.clone();
105 }
106
107 /**
108 * @return vaakasuuntainen sijainti kentälle
109 */
110 @Override
111 public int getSijainti() {
112 return SwingConstants.RIGHT;
113 }
114 }
115