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