javafx 自定义控件_JavaFX自定义控件– Nest Thermostat第3部分
生活随笔
收集整理的這篇文章主要介紹了
javafx 自定义控件_JavaFX自定义控件– Nest Thermostat第3部分
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
javafx 自定義控件
嗨,經(jīng)過(guò)與同事的討論,我今天決定展示css方法并不是唯一可用于創(chuàng)建自定義控件的方法。 當(dāng)然,它允許提供一些外觀擴(kuò)展點(diǎn),但是可以使用代碼API使用相同的方法(與向JavaFX的轉(zhuǎn)換)一起使用。
這是圖形初始化方法,通過(guò)調(diào)用JavaFX對(duì)象API,我已替換了CSS初始化代碼(現(xiàn)已注釋掉)。
節(jié)點(diǎn)大小的管理如下(無(wú)論如何,css方法都應(yīng)做同樣的事情)。
private void resize() {size = getWidth() < getHeight() ? getWidth() : getHeight();// frame.setPrefSize(size, size);frame.setRadius(size / 2.0);frame.setTranslateX(size / 2.0);frame.setTranslateY(size / 2.0);frame1.setRadius(frame1Ratio * size / 2.0);frame1.setTranslateX(size / 2.0);frame1.setTranslateY(size / 2.0);shadow.setOffsetX(size * shadowXOffset);shadow.setOffsetY(size * shadowYOffset);shadow.setRadius(size * shadowSizeOffset);shadow.setSpread(0.099);frame2.setRadius(frame2Ratio * size / 2.0);frame2.setTranslateX(size / 2.0);frame2.setTranslateY(size / 2.0);frame3.setRadius(frame3Ratio * size / 2.0);frame3.setTranslateX(size / 2.0);frame3.setTranslateY(size / 2.0);final double scaleRatio = size / initialSize;line1.setScaleX(scaleRatio);line1.setScaleY(scaleRatio);final double lineWidth = line1.getBoundsInLocal().getWidth();line1.setTranslateX(size / 2.0 - lineWidth / 2.0);line1.setTranslateY(size * 408.72054 / initialSize);line.setScaleX(scaleRatio);line.setScaleY(scaleRatio);line.setTranslateX(size / 2.0 - lineWidth / 2.0);line.setTranslateY(size * 410.08419 / initialSize);lightEffect.setRotate(lightEffectRotate);lightEffect.setTranslateX(lightEffectXRatio * size);lightEffect.setTranslateY(lightEffectYRatio * size);lightEffect.setRadiusX(lightEffectXRadiusRatio * size);lightEffect.setRadiusY(lightEffectYRadiusRatio * size);} 下一步將是混合兩種方法,為用戶提供兩種工作方法。 一個(gè)人將能夠使用css方法來(lái)自定義Nest表示形式,其他人將能夠使用良好的代碼API方法。 這將使我看到對(duì)代碼有什么影響(是否沉重或不同時(shí)使用這兩種方法),以及在進(jìn)一步簡(jiǎn)化代碼之前是否在css和代碼API之間做出選擇。
翻譯自: https://www.javacodegeeks.com/2014/02/javafx-custom-control-nest-thermostat-part-3.html
javafx 自定義控件
總結(jié)
以上是生活随笔為你收集整理的javafx 自定义控件_JavaFX自定义控件– Nest Thermostat第3部分的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 条形码扫描器电脑版(条形码扫描器手机版)
- 下一篇: 内存映射文件 写入 卡住_在Java中使