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