Swing程式設計

2021-08-15 15:00:09 字數 2703 閱讀 1639

1.常用窗體(元件的承載體)

jframe:是swing程式中各個元件的載體,可以將其看作是承載這些swing元件的容器,擁有最大化、最小化、關閉等按鈕。jframe物件建立完成後,需要呼叫getcontentpane()方法將窗體轉換為容器,使用container.add()新增元件

jdialog:是swing元件中的對話方塊,功能是從乙個窗體中彈出另乙個窗體,在使用時也需呼叫getcontentpane()方法將窗體轉換為容器,然後在容器中設定窗體特性

jlabel:可以顯示一行唯讀文字、乙個影象或帶影象的文字,並不能產生任何型別的事件,只簡單顯示文字和,但可指定標籤上文字的對齊方式;可建立圖示,也可使用圖示

2.常用布局管理器(元件在容器中位置)

絕對布局:使用container.setlayout(null)方法取消布局管理器;使用component.setbounds()方法設定每個元件的大小與位置  setbounds(int x,int y,int width,int height)x與y分別代表窗體在整個螢幕上出現的位置,width寬,height長

流布局管理器:從左到右擺放元件,直到佔據了這一行所有空間,然後再向下移動一行,每一行上居中排列

public flowlayout(int alignment,int horizgap,int vertgap) alignment=0→flowlayoutleft  alignment=1→flowlayoutcenter alignment=2→flowlayoutright

邊界布局管理器:在預設不指定窗體布局情況下,swing元件的布局格式是邊界布局管理器,將容器劃分為東、南、西、北、中5個區域borderlayout.north

網格布局管理器:元件按行和列進行排列,每個元件大小相同,網格中空格個數由網格的行數和列數決定 public gridlayout(int rows(行),int columns(列),int horizgap(網格之間水平間距),int vertgap(網格之間垂直間距))

3.常用面板(可作為容器容納其他元件,必須新增到其他容器中)

jpanel面板:可首先設定整個窗體布局,然後定義面板,分別為面板設定布局,再將按鈕等元件放置在每個面板中,最後將面板新增至容器中

jscrollpane面板:帶滾動條,只能放乙個元件,並且不可以使用布局管理器,如果需要放置多個元件,需要將元件放置在jpanel面板,然後將jpanel面板作為乙個整體元件新增在jscrollpane元件中

4.按鈕元件(觸發特定動作)

提交按鈕元件:public jbutton(string text,icon icon)指定按鈕上顯示的圖示、文字

seticon()定製圖示、settooltiptext()設定提示文字、setborderpainted()設定按鈕邊界是否顯示、setmaximumsize(new dimension())設定按鈕的大小與圖示大小一致、setenabled()設定按鈕是否可用

單選按鈕元件:預設情況下顯示為乙個圓形圖示 public jradiobutton(string text,icon icon,boolean selected(預設屬性是否被選中))

按鈕組:buttongroup group=new buttongroup() 建立乙個buttongroup物件group呼叫add()方法新增單選按鈕

核取方塊元件:public jcheckbox(string text/icon icon,boolean checked)設定圖示,設定核取方塊的文字是否被選中 

5.列表元件

下拉列表框元件:public jcombobox() 下拉列表框中的內容可以被封裝在comboboxmodel型別、陣列或vector型別中

comboboxmodel為介面,代表一般模型,可自定義乙個類實現該介面,然後在初始化jcombobox物件時向上轉型為comboboxmodel介面→jcombobox jc=new jcombobox(new mycombobox()),必須實現 public void setselecteditem(object item)(設定下拉列表框中選項)

public object getselecteditem()(返回下拉列表框中選中項),還可繼承abstractlistmodel類,該類中有getsize()返回列表長度、getelementat()返回指定索引處的值

列表框元件:在窗體上佔據固定的大小,可將列表框放入滾動面板中,使其具有滾動效果

public void jlist() 無參初始化後使用setlistdata()對列表框進行設定/初始化過程中對列表框中專案進行設定(3種型別 陣列、vector型別、listmodel模型)

6.文字元件

密碼框元件:使使用者輸入的字串以某種符號進行加密 public jpasswordfield(string text,int fieldwidth) setechocchar()可改變密碼框的回顯字元

文字域元件:接受使用者的多行文字輸入  public jtextarea(document doc,string text,int rows,int columns) setlinewrap()設定文字域是否可以自動換行(true)

7.常用事件***

動作事件*** :addactionlistener()增加*** removeactionlistener() 

定義內部類實現actionlistener介面  需重寫actionperformed()方法,乙個類中不可重寫兩次該方法,所以為事件源做監聽事件時,使用內部類來解決這個問題

焦點事件***:addfocuslistener()新增***

swing 程式設計 二

一 由按鈕的處理想到的 有很多的按鈕是不可怕的,可怕的是這些按鈕之間有邏輯關係,實際 要做的是簡化這些關係,把這些關係做到最簡化,盡可能提取出程式的應用邏輯,不要寫死 簡化介面設計,操作簡化,使用簡化,步驟簡化,是最後才去完成的事情 1 設計介面 2 簡化設計介面 3 評審設計 4 修改並簡化設計 ...

Swing程式設計 2

1 絕對布局 setlayout null 使該窗體取消布局管理器設定 jbutton b1 new jbutton 按鈕1 b1.setbounds 10,30,80,30 2 流布局管理器 設定窗體使用流布局管理器,使元件右對齊,並且設定元件之間的水平間隔10與垂直間隔10 setlayout ...

Swing程式設計邊框 Border 的用法總結

對引數border物件的定義主要通過borde ctory進行,這也是本文討論的重點,根據api的解釋 borde ctory提供標準 border 物件的工廠類。在任何可能的地方,此工廠類都將提供對已共享 border 例項的引用。下面討論具體的應用方法 borde ctory.createlin...