主要有兩個重點,1.) 與圖格游標互動 2.) 自訂畫圖類別
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | lib "personal"; public class MyScript extends CustomCorePersonal { public void init() { CustomCore_UI_INIT(); Layer layer = getLayer("K線"); //加入自訂的畫圖元件 layer.addSteady(new MyPaintElem()); //用MotionAdapter偵測滑鼠HiLight的位置 layer.setMotionAdapter(new MotionAdapter() { //當滑鼠移動X軸改變t時會呼叫這裡 public void move(int t) { dbg.print("move " + " t:" + t); } //當滑鼠移動X或Y軸時會呼叫這裡 public void move(int t, double value) { price = value; dbg.print("move " + " t:" + t + " v:" + value); } //當滑鼠點擊時會呼叫這裡 public boolean click(int button, int t, double value) { dbg.print("click button:" + button + " t:" + t + " v:" + value); return false; } }); } double price = 0; //自訂畫圖類別 class MyPaintElem extends SteadyElem { //當需要畫圖時會呼叫這裡,之後可以透過Java的畫圖函數任意揮灑 public void paint(Graphics g, int runID, int idxFrom, int idxEnd, int idxHili, PaintBlockInfo block, PaintScaleInfo scalement) { int x1 = block.getBarPosCenterXByIdx(idxHili-idxFrom); int y1 = scalement.Vaule2Pos(price); g.setColor(black); g.drawString(""+price, x1, y1); } } } |
程式碼上已經有些註解可以輔助了解內容了,程式執行起來可以看到一個隨著滑鼠移動的價格提示字串。
沒有留言:
張貼留言