Çalışma ortamı olarak Netbeans IDE 7.2 kullandım. (Prime Faces kullanmak için ekstra birşey kullanmak gerektirmiyor.)
Yeni bir proje oluşturalım : File --> New Project ' e tıklayalım . Daha sonra şu işlemleri yapalım :
Finish Butonuna tıklanarak proje oluşturulur. Daha sonra projemize bir faces template ekleyelim.
Projemize sağ tıklayıp , New -Facelets Template dedikten sonra yeni bir isim verip sayfamızı oluşturuyoruz. (home.xhtml) Daha sonra projemize bir bean dosyası ekleyelim . Bu bean dosyamız java kısmını gerçekleştireceğimiz kısımdır. Bunun için projemizde bulunan source packages klasörüne sağ tıklayıp new -JSF Managed Bean sekmesine tıklayalım. Daha sonra şu şekilde değişiklik yapılır :
Bean dosyamızı da oluşturduktan sonra Hesap Makinemizin arayüzünü tasarlayalım :
<h:body>
<div id="top">
<ui:insert name="top">Top</ui:insert>
</div>
<div>
<div id="left">
<ui:insert name="left"></ui:insert>
</div>
<div>
<div id="right">
<ui:insert name="right"></ui:insert>
</div>
<div id="content" class="right_content">
<ui:insert name="content">
<h:form>
<table width="200" height="200">
<tr>
<td border="1" colspan="4">
<h:inputTextarea id="display" />
</td>
</tr>
<tr>
<td>
<h:commandButton id="btn1" styleClass="btn" value="9" />
</td>
<td>
<h:commandButton id="btn2" styleClass="btn" value="8"/>
</td>
<td>
<h:commandButton id="btn3" styleClass="btn" value="7"/>
</td>
<td>
<h:commandButton id="btnPlus" styleClass="btn" value="+" />
</td>
</tr>
<tr>
<td>
<h:commandButton id="btn4" styleClass="btn" value="6" />
</td>
<td>
<h:commandButton id="btn5" styleClass="btn" value="5"/>
</td>
<td>
<h:commandButton id="btn6" styleClass="btn" value="4" />
</td>
<td>
<h:commandButton id="btnMinus" styleClass="btn" value="-" />
</td>
</tr>
<tr>
<td>
<h:commandButton id="btn7" styleClass="btn" value="3" />
</td>
<td>
<h:commandButton id="btn8" styleClass="btn" value="2"/>
</td>
<td>
<h:commandButton id="btn9" styleClass="btn" value="1"/>
</td>
<td>
<h:commandButton id="btnMultiply" styleClass="btn" value="*" />
</td>
</tr>
<tr>
<td>
<h:commandButton id="btn0" styleClass="btn" value="0" />
</td>
<td>
<h:commandButton id="btnC" styleClass="btn" value="C" />
</td>
<td>
<h:commandButton id="btnPoint" styleClass="btn" value="." />
</td>
<td>
<h:commandButton id="btnDivide" styleClass="btn" value="/" />
</td>
</tr>
<tr>
<td colspan="4">
<h:commandButton id="btnEquals" styleClass="btnEquals" value="=" />
</td>
</tr>
</table>
</h:form>
</ui:insert>
</div>
</div>
</div>
</h:body>
Projemizi çalıştırdığımızda arayüz şu şekilde olur :
Daha sonra bean kısmında geçilir. Asıl işlemlerin yapılacağı , java kodunun yazılacağı kısım burasıdır. İlk olarak Managed bean kısmında bean imize isim verilir.
@ManagedBean(name="calcBean")
Bu işlem xhtml kısmından javada bulunan değişkenlere , methodlara ulaşmamızı sağlar.Java kısmında kodlarımızı yazmaya başlayalım. Arayüzde rakamların olduğu butonlara tıkladığımızda hesap makinesinin ekranında görülmesini sağlayacak fonksiyonumuzu ve değişkenimizi yazalım.
private String number="";
public void assignNumber(String str){
number = number + str ;
}
Bunlara ek olarak number değişkeninin getter ve setter methodlarını yazalım.
/* ------------------------------------------- */
/* GETTER(S) AND SETTER(S) */
/* ------------------------------------------- */
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
Toplama ,çıkarma , bölme ve çarpma işlemlerini yaptığımızda ekranda olan sayının birinci sayı olarak atanması gerekmektedir. Bunun için firstNumber , secondNumber ve total isimlerini verdiğimiz değişkenlerimizi tanımlayalım.
private double firstNumber;
private double secondNumber;
private double total;
Toplama, çıkarma , çarpma veya bölme işlemlerinden hangilerine tıklandığını kontrol etmek için kontrol değişkenleri ataması yapalım.
private int plusControl = 0;
private int minusControl = 0;
private int multipleControl = 0;
private int divideControl = 0;
private int pointControl = 0;
İşlemlere tıklandığında ekrandaki sayının birinci değer olarak atanması ve ilgili işlemin kontrol değerinin 1 olması gerekmektedir .
girdiğimiz sayıların ondalıklı olması için de ayrı bir fonksiyon ve değer tanımladık. private int pointClick nokta butonuna tıklanıp tıklanmadığını kontrol eden değişkenimizdir. Bu değişkeni kullanarak bu nokta butonuna yalnızca bir kez tıklanmasını sağlayalım .
Eşittir butonuna basıldığında en son tıklanan işlemin yapılması için daha önceden 1 olarak atadığımız işemlerin değerleri kontrol edilerek o işlemin yapılması sağlanır. ilgili işlem yapıldıktan sonra kontrol değerleri ve birinci değer ve ikinci değerler sıfırlanır.
Bu şekilde Jsf de basit bir hesap makinesi uygulamamızı tamamlamış olduk.
0 yorum:
Yorum Gönder