javafx由浅到深的 认识(一)
?javafx是一款比較新興的語(yǔ)言框架,隨著javafx越來(lái)越實(shí)用,估計(jì)許多程序員也會(huì)慢慢接觸它,故我在這里對(duì)它由淺到深進(jìn)行介紹一下.
? ? ? ?首先,要了解javafx,就應(yīng)該先知道.xml文件的布局軟件,以往java都是通過(guò)敲代碼來(lái)進(jìn)行布局的,但javafx有力新的突破,它實(shí)現(xiàn)了拖動(dòng)方式,目前我使用的輔助軟件是JavaFX Scene Builder 2.0,故這一篇文章我主要首先介紹一下JavaFX Scene Builder 2.0這款軟件,希望對(duì)大家有所幫助.
? ? ? ?打開(kāi)JavaFX Scene Builder 2.0軟件,我們可以看到三大塊,第一塊是布局所需的元素集合,第二塊是布局的位置,第三塊是屬性的一些設(shè)置,下面對(duì)這三塊我來(lái)一一介紹.
?
一. 布局元素
? ?1. containers容器一欄,在這一欄中有各種容器,所謂容器,就是用來(lái)裝載其他按鈕表格之類的一塊區(qū)域,合理地利用容器,可以很好的進(jìn)行布局, ?建議初學(xué)者將每個(gè)容器一一拖到布局位置進(jìn)行查看它的效果,從而掌握每個(gè)容器應(yīng)用到何處,其中Vbox以及Hbox是以后介紹頁(yè)面正常全屏顯示的 ? ? ? ? ?關(guān)鍵,請(qǐng)大家關(guān)注接下來(lái)的一些文章
? ? 2. controls,控制器一欄,這一欄的元素存在的基礎(chǔ)是有容器,控制器必須放在容器中,每個(gè)控制器都是自己獨(dú)立的顯示方式以及功能,lable文字標(biāo) 簽控制器,用來(lái)顯示一些文字;button按鈕控制器,用來(lái)做功能按鈕;checkbox復(fù)選框,用來(lái)判斷是否選擇的選擇框;choicebox,combobox, ? ? ? ? ? 文字選擇器,用來(lái)選擇下拉框中的文字;imageview圖片加載器,用來(lái)放置圖片(注意:實(shí)際編程時(shí),改圖片必須存放在該項(xiàng)目源文件夾中,與 ? ? ? ? ? ? 該.xml文 件處于同一目錄下);pagination分頁(yè)控件,與表格一起使用可以加載多頁(yè)數(shù)據(jù);tableview表格控件,可以在其中加載所需的數(shù)據(jù),數(shù) ? ? ? ? ? 據(jù)源可以來(lái)自 于數(shù)據(jù)庫(kù);textfiled文本框控件,用于輸入信息的,可以用來(lái)輸入存儲(chǔ)信息及查詢信息等等,還有更多其他的控件,在以后會(huì)做更多 ? ? ? ? 的介紹,并且會(huì)介紹一些控件具體的程序?qū)崿F(xiàn)。
二. 布局位置
? ? ? 1. 用鼠標(biāo)將布局元素直接拖至這塊區(qū)域,就可以看到所拖元素的展現(xiàn)形式,可以在這一調(diào)整元素的大小以及位置,并且溫馨提示一下,如果你要使 用ctrl+v,那么你所粘貼的元素會(huì)出現(xiàn)在與你選中元素同一個(gè)容器中,即粘貼的元素與選中的元素是同一級(jí)別的。如果有一些誤操作,建議使用 ? ? ? ? ? ? ctrl+z來(lái)進(jìn)行恢復(fù)。
三. 屬性
? ? ? 1. ? properties基本屬性塊,editable選則是否可編輯,一般來(lái)說(shuō),對(duì)有輸入型的控件比較適用,例如textfiled控件,如果可編輯狀態(tài)沒(méi)有打鉤,那么 這個(gè)文本框就不可以輸入值;disable是否可用的狀態(tài)編輯,如果這一項(xiàng)打上鉤,那么就會(huì)發(fā)現(xiàn),這個(gè)元素正題顏色會(huì)變得暗淡,變現(xiàn)為不可用 ? ? ? ? ? ? 狀態(tài);visiable是否可見(jiàn)狀態(tài),如果這一項(xiàng)不打鉤,就會(huì)發(fā)現(xiàn)這個(gè)元素在布局上沒(méi)有了,貌似隱藏了,實(shí)際上就是將這個(gè)元素隱藏起來(lái),并且不 ? ? ? ? ? ? 可用;cursor鼠標(biāo)狀態(tài),主要用來(lái)設(shè)置鼠標(biāo)移動(dòng)到這個(gè)元素位置上時(shí),鼠標(biāo)顯示的圖標(biāo)形狀,通常一些功能按鈕會(huì)設(shè)置成hand圖標(biāo)類型;style ? ? ? ? ? ? 風(fēng)格設(shè)置,可以用來(lái)設(shè)置元素底色之類的。
? ? ? ? 2. layout屬性塊,padding主要針對(duì)的是元素在布局中的位置,可以上下左右的位置進(jìn)行相應(yīng)的微調(diào);接下來(lái)的height跟width這些屬性將對(duì)Hbox及 Vbox的全屏顯示布局顯示至關(guān)重要,因此后面會(huì)涉及到全屏顯示到底如何具體設(shè)置;接下來(lái)的xyz基本上就是設(shè)置元素在頁(yè)面上位置的屬性。
? ? ? ? 3. code屬性塊
? ? ? ? ? ?fx:id :這個(gè)主要是給這個(gè)元素設(shè)置一個(gè)ID,這個(gè)Id主要是為了能夠清晰的在程序中辨別出各個(gè)元素,一般而言,基本上絕大部分元 素都是需要 ?去辨別的,所以除了一些實(shí)在不需要作程序處理的元素,其他的都必須給一個(gè)Id,而且在同一個(gè).XML文件中,一般每個(gè)元素對(duì)應(yīng)的 id都不會(huì) ? ? ? ? ? ? ? ? ?相同,id有著明確的指向性;
? ? ? ? ? ? On Action觸發(fā)事件:事件是ActionEvent,在這里設(shè)置一個(gè)觸發(fā)函數(shù)名,然后在程序中給這個(gè)函數(shù)寫(xiě)入相 應(yīng)的方法,這個(gè)事件 的觸發(fā)是鼠標(biāo)左 ?擊這個(gè)元素就可以了;
? ? ? ? ? ? On Key Pressed觸發(fā)事件:事件是KeyEvent,在這里設(shè)置一個(gè)觸發(fā)函數(shù),然后在程序中寫(xiě)入相應(yīng)的方法,這是一個(gè)鍵盤(pán)按鍵觸發(fā)事件,只要有 按鈕按下就會(huì)觸發(fā),經(jīng)常實(shí)現(xiàn)的就是Enter鍵觸發(fā)事件的設(shè)置,在這個(gè)觸發(fā)事件正增加一個(gè)判斷是否為Enter鍵操作,即可實(shí)現(xiàn)按回車鍵進(jìn)行 ? ? ? ? ? ? ? ? ?搜素的事件。
? ? ? ? ? ? ?On Mouse Clicked觸發(fā)事件:事件是MouseEvent,在這里設(shè)置一個(gè)觸發(fā)函數(shù),然后在程序中寫(xiě)入相應(yīng)的方法,這是一個(gè)鼠標(biāo)觸發(fā)事件,只要 ? 鼠標(biāo)點(diǎn)擊相應(yīng)的元素(無(wú)論左擊還是右擊),就可以觸發(fā)這個(gè)函數(shù),當(dāng)然,如果你不希望左右擊都實(shí)現(xiàn)功能,則可以在這個(gè)函數(shù)中添加一個(gè) ? ? ? ? ? ? ? ? 鼠標(biāo)左右擊的判斷事件,從而實(shí)現(xiàn)只有左擊或右擊實(shí)現(xiàn)功能,具體如何在程序中如何判斷,以后會(huì)介紹。
? ? ? ? ? ? ?On Mouse Dragged觸發(fā)事件:事件是MouseEvent,在這里設(shè)置一個(gè)觸發(fā)函數(shù),然后在程序中寫(xiě)入相應(yīng)的方法,這是一個(gè)鼠標(biāo)點(diǎn)擊拖動(dòng)事 ? ? ? 件,當(dāng)鼠標(biāo)點(diǎn)擊按住不動(dòng)開(kāi)始拖動(dòng)時(shí),就不斷地觸發(fā)這個(gè)函數(shù),這個(gè)觸發(fā)事件可以做鼠標(biāo)拖動(dòng)頁(yè)面的操作。
? ? ? ? ? ? ? 以上是經(jīng)常會(huì)用到的一些觸發(fā)事件,還有其他更多的觸發(fā)事件,在這里就不作一一介紹了,有興趣的同學(xué)可以自己去一一嘗試其他觸發(fā)事件的 ? ? ? ? ? ? ? 作用。
? ? ? ? ? ? ?這一期就寫(xiě)到這里,下一期將通過(guò)程序來(lái)具體介紹一些控件的具體操作以及設(shè)置。
原文地址:http://blog.csdn.net/z01014274/article/details/44101125
總結(jié)
以上是生活随笔為你收集整理的javafx由浅到深的 认识(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C# 修改打印机名称
- 下一篇: React开发(265):ant des