Swing樹元件的使用

2021-08-14 06:38:58 字數 2397 閱讀 4073

swing樹元件

一、簡單的樹

樹狀結構是一種常用的資訊表現形式,它可以直觀的顯示出一組資訊的層次結構。swing中的

jtree

類是用來建立樹的,該類的常用構造方法如下:

jtree():建立乙個預設的樹

jtree(

treenode node

):根據指定根節點建立樹。

jtree(

treemodel newmodel

):根據指定樹模型建立樹

.defaultmutabletreenode類實現了

treenode

介面,用來建立樹的節點,

defaultmutabletreenode

類的add()

方法為節點新增子節點。

defaulttreemodel類實現了

treemodel

介面,該類提供了兩個構造方法,所以在利用該類建立樹模型時,必須指定樹的根節點。構造方法如下:

defaulttreemodel(

treenode root

):建立乙個採用預設方式來判斷節點是否為葉子節點的樹模型。

defaulttreemodel(

treenode root

,boolean askallowschildren

):建立乙個採用指定方式來判斷節點是否為葉子節點的樹模型。

二、處理選中節點事件

樹的節點允許被選中和選中狀態,通過捕獲樹節點的選擇事件,可以處理相應的操作樹的選擇模式有三種,通過treeselectionmodel類的物件可以設定樹的選擇模式。可以通過

jtree

類的getselctionmodel

()方法獲得

treeselectionmodel

類的物件,然後通過

treeselctionmodel

類的setselectionmodel

(int mode

)方法設定選擇模式,該方法的入口引數為:

single_tree_selection:只允許選中乙個

contiguous_tree_selection:允許連續選擇多個

discontiguous_tree_selection:允許隨意選中多個

當選中樹節點和取消樹節點的選中狀態時,將發出treeselectionevent事件,通過實現

treeselectionlistener

介面可以捕獲該事件。

treeselectionlistener

介面的具體定義:

public inte***ce treeselectionlistener extends eventlistener

當捕獲發出的treeselectionevent事件時,

void valuechanged

(treeselectionevent e

)方法將被觸發執行,此時可通過

jtree

類的getselectionpaths

()方法獲得所有 被選中節點的路徑,該方法將返回乙個

treepath

型別的陣列;通過

getselectionpath

()方法可以獲取選中節點中的索引的最小的節點的路徑,即

treepath

物件,在此之前,可以通過

jtree

類的isselectionempty

()方法檢視是否存在被選中的節點,可以通過

getselectioncount

()方法可以獲取被選中節點的數量。

treepath類的常用方法:

getpath():以

object

陣列的形式返回該路徑中所有節點的物件,在陣列中的順序按照從根節點到子節點的順序。

getlastpathcomponent():獲得該路徑中最後乙個節點的物件。

getparentpath():獲得路徑中除了最後乙個節點的路徑

pathbyaddingchild():獲得向路徑中新增指定節點後的路徑

getpathcount():獲得向路徑中包含節點的數量

getpathcomponent(

int element

):獲得路徑中指定索引位置的節點物件

三、遍歷樹節點

defaultmutabletreenode類提供了兩組相對的遍歷方式,如下:

前序遍歷和後序遍歷是一組相對的遍歷方式,方法分別為:preorderenumeration()和

postorderenumeration

()方法,返回的是列舉型別物件。

廣度優先遍歷和深度優先遍歷是一組相對的遍歷方式,方法分別為:breadfirstenumeration()和

deptfirstenumeration

()方法,返回的是列舉型別物件。

Swing常用元件

面板類jpanel jpanel類常用來作為一批元件如jbutton,jtextbox等的容器,一般來說對它的常見操作有設定其邊框,設定其布局等.設定邊框 setborder borde ctory.createtitledborder title 設定布局 示例 setlayout new gri...

Swing元件字型的更改

font font new font 宋體 font.plain,12 uimanager.put jbutton.font font uimanager.put button.font font uimanager.put togglebutton.font font uimanager.put ...

常用Swing元件概述

jbutton 代表swing按鈕,按鈕可以帶一些或者文字 jcheckbox 代表swing中的核取方塊元件 jcombox 代表下拉列表框,可以在下拉顯示區域顯示多個選項 jframe 代表swing的框架類 jdialog 代表swing版本的對話方塊 jlabel 代表swing中的標籤元件...