IntelliJ IDE 開發(fā)Java GUI 入門

本博客主要對java 的GUI相關(guān)知識進行簡單的介紹和總結(jié),整個博客按照創(chuàng)建一個java GUI的順序進行介紹,期間穿插講解用到的java Swing的布局、控件等相關(guān)知識。本博客所進行的講解及工程的創(chuàng)建等,都是基于Intellij IDEA進行操作的。

轉(zhuǎn)載請注明出處...雖然感覺沒人會用這個技術(shù)吧...

?一、創(chuàng)建Gradle管理的java工程

?1.在Intellij IDEA的首頁,選擇Create New Project

首頁選擇創(chuàng)建新工程

2.點擊之后,界面會跳轉(zhuǎn)到如下界面,按照圖中選擇后,點擊next即可(另圖中*處標明你必須確保你已經(jīng)為你的intellij配置過了jdk的路徑)。

選擇gradle

3.之后,會彈出如下界面,填寫GroupId和ArtifactId即可,填寫之后繼續(xù)點擊next。

填寫groupId和ArtifactId

4.然后會彈出如下界面,并按圖中紅框標注進行選擇,選擇完畢后再次點擊next。

選擇gradle配置

5.然后就到了最后一步,填寫工程名稱,并選擇工程所在路徑,如圖,填寫和設(shè)置完成后,點擊finish即可。

填寫工程名稱和路徑

6.在intellij的左側(cè)即可顯示出創(chuàng)建完成的工程,如下圖所示:

初始創(chuàng)建的工程目錄

以上就是使用intellij IDEA 創(chuàng)建一個gradle工程的簡單引導(dǎo)過程,具體的還要以實際操作為準。

二、創(chuàng)建頁面

因為這是鄙人整理的關(guān)于java GUI的知識文檔,所以這一節(jié)是最重要的,畢竟GUI中,頁面是它最大的特色。但鄙人才疏學(xué)淺,也只能是介紹些基礎(chǔ)知識和它們的基本用法,希望可以起到拋磚引玉的作用。

1. 創(chuàng)建一個GUI頁面的流程:

在上述第一節(jié)中創(chuàng)建的gradle工程中,在其目錄中選擇如下文件夾(或者你也可以另外在main文件夾下創(chuàng)建新的文件夾):

右擊java

右擊后,選擇new-->GUI Form,點擊GUI Form后,會出現(xiàn)如下對話框:

guiformdialog

在其中輸入Form name,則下方的Class name默認與Form name相同,例如輸入Test,點擊ok后,即生成如下的組合文件:

Test組合文件

這兩個文件中,Test.form 即為放置GUI中的布局和控件的地方,類似于Android中的xml布局文件或者說是前端的html文件,或者說是iOS的StoryBoard之類的??梢哉J為,用戶最終看到和接觸到的就是就是這個文件展示的效果。另外的Test類,則是Test.form文件對應(yīng)的捆綁類,在這其中主要進行Test.form頁面相關(guān)的邏輯處理,包括Test.form文件中的各個控件的各種事件,用到的數(shù)據(jù)的處理等等。

在這里鄙人只對Test類中的一些共性操作作簡單介紹,具體的邏輯處理則因頁面功能而異,需要大家自己去具體處理了;而對Test.form中放置的布局、控件等則會進行較為詳細的介紹,包括布局的基本屬性和用法,控件的基本屬性和用法等等。

?先給大家看個最簡單的效果:

巨特么簡單的效果

上面這個巨簡單的效果圖,就是通過GUI Form創(chuàng)建的頁面代碼run之后生成的java的桌面程序。


它雖然簡單,但是卻包含了使用Intellij IDEA 創(chuàng)建java GUI Form程序的完整流程,下面鄙人對這個完整流程進行簡單介紹:


首先需要說明,這個頁面中包含的控件,只有一個JLabel是本人放置的,其它的控件都是系統(tǒng)自動生成的,它的Component Tree(其實就是組件的節(jié)點組合效果) 顯示如下:

componenttree

下面說具體的創(chuàng)建流程:即點擊下圖中1處的JLabel控件,然后再點擊2處系統(tǒng)默認生成的Jpanel,就搞定了。。

拖放JLabel

之后,則需要進行屬性的設(shè)置,說到屬性的設(shè)置,對每個控件都只有設(shè)置了它的filed name,才會在該GUI Form文件對應(yīng)的捆綁類中生成對應(yīng)的控件對象。


所以針對上圖拖放的JLabel,需要修改它的fieldName,暫且改為testLabel,而系統(tǒng)默認生成的JPanel則改為rootPanel。然后簡單設(shè)置testLabel 的text屬性,即設(shè)置它的顯示文字,如下圖中選擇testLabel的text屬性,點擊后輸入文字,再點擊鍵盤的enter即可。

設(shè)置testLabel的文字

這樣test.form文件的控件擺放和控件屬性設(shè)置就完成了,接下來來到Test這個類文件中,可以看到在其中已經(jīng)生成了兩個控件對象,如下圖,這兩個控件就是我們設(shè)置了field name 的控件:

只有控件

然后就是最關(guān)鍵的一步操作了,在當前的Test類的界面執(zhí)行如下操作:右擊當前類的{}所包含界面-->選擇Generate-->選擇Form main(),點擊后即會生成如下代碼:

生成main函數(shù)

之后運行工程,即可顯示出上述最簡單的頁面效果了。

2. 控件和布局

接下來,鄙人再對GUI Form中常用的布局和控件進行簡單的介紹,當然,由于這些布局或控件的數(shù)量比較多,所以我也只是對其中的某一個進行屬性和用法的簡單介紹,至于其他的,大家可以參考這些介紹,自行嘗試即可。

2.1 布局

下面先說布局,在GUI Form中提供了以下幾種選擇:BorderLayout,CardLayout,F(xiàn)lowLayout,F(xiàn)ormLayout(JGoodies),GridBagLayout,GridLayoutManager(Intellij)等。在這里鄙人只簡單講解GridLayoutManager(Intellij)這個布局的使用。

目前來說,根據(jù)鄙人為數(shù)不多的使用經(jīng)驗來看,通過這個GridLayoutManager的布局,加上JPanel的使用,一般是可以實現(xiàn)任何布局上的效果的。比如,實現(xiàn)上下左右四個panel的效果:

簡單的例子

上述效果的實現(xiàn)就是在系統(tǒng)的rootPanel的布局屬性上選擇GridLayoutManager(Intellij)后,再依次拖放四個JPanel控件到rootPanel,然后簡單的調(diào)整各個控件的大小,給各個JPanel設(shè)置不同的背景色后實現(xiàn)的效果。

設(shè)置JPanel的布局

好了,關(guān)于布局的用法,就簡單說到這里,因為它們的用法都太靈活了,需要大家去親自實踐,才能更好的實現(xiàn)你需要的效果。

2.2 控件

下面就講解控件的屬性和用法,就以最常用的JButton為例來對它的屬性和基本用法進行講解:

先來看下面兩個截圖中的GUI Form文件提供的Button控件的所有屬性(需要勾選show expert properties),:

JButton所有屬性1
JButton所有屬性2

下面再針對上面兩個截圖中紅框中的屬性進行簡單講解,其他的屬性鄙人也沒有用過就不多說了,靠大家自己去嘗試了。

HorizontalSizePolicy 水平尺寸策略

可選擇的值有can shrink,can grow,fixed,其效果都是跟它的字面意思差不多:

?can shrink:水平大小可以收縮

?can grow : 水平大小可以擴展

? fixed:水平大小固定

? 請注意,如果JButton設(shè)置了prefered Size , MinimumSize , MaximumSize,且這個三個值都是一樣的,那么就會使當前的HorizontalSizePolicy屬性失效。?

VerticalSizePolicy 豎直尺寸策略,同上,只是是豎直方向的。?

HorizontalAlign? 水平對齊方式?

? 設(shè)置button位置的水平對齊方式,可選擇的值有:

left:位置居左

right:位置居右

center:位置居中

fill:充滿父容器

? 其作用也是同字面意思,但是button的位置是相對于父控件而言的,即一般都是Panel類型的控件。?

VerticalAlign豎直對齊方式,同上水平對齊方式。

MinimumSize:最小尺寸,PreferedSize:希望呈現(xiàn)的尺寸,MaximumSize:最大尺寸。

這三個屬性是一組的,默認值都是[-1, -1],但是想要設(shè)置button為某個具體的尺寸則需要將它們?nèi)齻€的值設(shè)置成一樣的。

background:背景色

enabled:是否可以交互。默認都是可以交互的,取消選中后則不可交互。

font: 字體大小,點擊后可選擇其大小值。

foreground:字體顏色。

icon:設(shè)置按鈕上的圖片,點擊后會引導(dǎo)你在工程目錄中選擇,所以需要設(shè)置圖片的話,需要提前放到工程中。

margin:外邊距,同所有的其他語言中的margin一樣。

opaque: 不透明

該屬性一般控件默認是選中的,但是有個特殊情況:JLabel,這個控件的該屬性是默認不選中的,這時候,你若設(shè)置JLabel的背景就會發(fā)現(xiàn),它死活不顯示背景色。只有當JLabel的opaque屬性選中后才會顯示。

text:文字,即設(shè)置按鈕上的文字

另外,提到按鈕,最最最重要的當然是它的點擊事件辣,所以這里鄙人也為大家提供一種創(chuàng)建某個控件的監(jiān)聽事件的快捷方式:

在Form文件中,右擊要創(chuàng)建監(jiān)聽事件的控件

選擇Create Listener

然后就會彈出一堆的監(jiān)聽事件,按鈕的監(jiān)聽事件即為第一個ActionListener,選擇后會回到該Form文件對應(yīng)的class文件中,彈出如下對話框:

創(chuàng)建按鈕事件監(jiān)聽器的彈出對話框

點擊ok即可完成創(chuàng)建,創(chuàng)建完成后,會在該Form文件對應(yīng)的class文件中生成如下代碼,在其中的actionPerformed()方法中即可完成相應(yīng)的邏輯處理。

自動生成的監(jiān)聽事件代碼

好了,至此就算是勉強給大家開了個java GUI相關(guān)內(nèi)容的門縫,具體的掌握這個冷門的技術(shù)還是需要大家在用到的時候,親自去上手實踐才是。下面附上一些可能大家會想要了解的Java Swing相關(guān)介紹的博客鏈接:

javaSwing教程

JSFileChooser文件選擇器demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容