iT邦幫忙

DAY 8
2

java菜鳥的學習筆記系列 第 8

灰煞煞之Java FX 2.0-Bindings Class(四則運算)Part2

  • 分享至 

  • xImage
  •  

今天分享java FX 2.0中 Bindings class中四則運算(以加法為例,其餘比照辦理),四則運算的結果於還有Fluent style寫法(Pro Java FX書中提的),孤陋寡聞的我沒聽過,不過簡單說就是一直append運算式
當然簡單的變數加減透過z=x+y就可以了,但如果x改變了、y改變了,原本的z除非重新執行z=x+y,否則值還是保持舊的,但若有了Binding的概念後,每當變數重新指定新值,Binding的變數,本例為NumberBinding,會接受invalidate event,告知原binding的值須重新計算,範例如下:

import javafx.beans.binding.Bindings;
import javafx.beans.binding.NumberBinding;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;

public class BindingsTest {
	public void CalSum(){
		int x=5;
		int y=8;
		int z=0;
		z=x+y;
		System.out.println(z); //13
		x=8;
		y=10;
		System.out.println(z); //還是13,並沒有改變
		
		IntegerProperty iv=new SimpleIntegerProperty(5);
		IntegerProperty iv2=new SimpleIntegerProperty(8);
		
		NumberBinding sum=Bindings.add(iv, iv2);
		System.out.println(sum.getValue()); //13
		
		iv.set(8);
		iv2.set(10);
		System.out.println(sum.getValue()); //18
		
		//梯形面積
		IntegerProperty l=new SimpleIntegerProperty(4); //上底
		IntegerProperty w=new SimpleIntegerProperty(8); //下底
		IntegerProperty h=new SimpleIntegerProperty(10);//高
		
		NumberBinding sum2=Bindings.add(l, w);
		NumberBinding area_t=Bindings.multiply(sum2, h);
		NumberBinding area_T=Bindings.divide(area_t, 2);
		System.out.println(area_T.getValue()); //60
		
		NumberBinding area_T2=l.add(w).multiply(h).divide(2); //Fluent Style
		System.out.println(area_T2.getValue()); //60
		
		l.set(10);
		w.set(20);
		h.set(30);
		
		System.out.println(area_T.getValue()); //450
		System.out.println(area_T2.getValue()); //450
		
		
	}

上一篇
灰煞煞之Java FX 2.0-Properties and Bindings-Part 1
下一篇
灰煞煞之Java FX 2.0-Collection in javaFX-Part3
系列文
java菜鳥的學習筆記28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言