JavaTM 2 Platform
Standard Ed. 6

javax.swing.plaf.basic
類別 BasicTreeUI

java.lang.Object
  繼承者 javax.swing.plaf.ComponentUI
      繼承者 javax.swing.plaf.TreeUI
          繼承者 javax.swing.plaf.basic.BasicTreeUI
直接已知子類別:
MetalTreeUI

public class BasicTreeUI
extends TreeUI

層次資料結構的基本 L&F。


巢狀類別摘要
 class BasicTreeUI.CellEditorHandler
          偵聽器負責獲取單元格編輯事件並相應地更新階層樹。
 class BasicTreeUI.ComponentHandler
          滾動時更新首選大小(如果需要)。
 class BasicTreeUI.FocusHandler
          失去/獲得焦點時重繪前導選擇行。
 class BasicTreeUI.KeyHandler
          用於獲取多個按鍵事件以適當產生事件。
 class BasicTreeUI.MouseHandler
          TreeMouseListener 負責基於鼠標事件更新選擇。
 class BasicTreeUI.MouseInputHandler
          在將鼠標釋放到用於建構 MouseInputHandler 的目的地之前,它一直負責傳遞所有鼠標事件,包括鼠標移動事件。
 class BasicTreeUI.NodeDimensionsHandler
          負責獲取節點大小的類別,其方法被轉發到 BasicTreeUI 方法。
 class BasicTreeUI.PropertyChangeHandler
          階層樹的 PropertyChangeListener。
 class BasicTreeUI.SelectionModelPropertyChangeHandler
          TreeSelectionModel 上的偵聽器,如果模型的任何屬性發生更改,則重置行選擇。
 class BasicTreeUI.TreeCancelEditingAction
          執行操作時調用 cancelEditing 的 ActionListener。
 class BasicTreeUI.TreeExpansionHandler
          更新 TreeState 以回應節點的展開/折疊。
 class BasicTreeUI.TreeHomeAction
          TreeHomeAction 用於處理 end/home 動作。
 class BasicTreeUI.TreeIncrementAction
          TreeIncrementAction 用於處理向上/向下操作。
 class BasicTreeUI.TreeModelHandler
          將所有 TreeModel 事件轉發到 TreeState。
 class BasicTreeUI.TreePageAction
          TreePageAction 處理向上翻頁和向下翻頁事件。
 class BasicTreeUI.TreeSelectionHandler
          偵聽選擇模型中的更改並相應地更新顯示。
 class BasicTreeUI.TreeToggleAction
          對於第一個選定行展開將被切換。
 class BasicTreeUI.TreeTraverseAction
          TreeTraverseAction 是用於向左/向右方向鍵的動作。
 
欄位摘要
protected  TreeCellEditor cellEditor
          階層樹的編輯器。
protected  Icon collapsedIcon
           
protected  boolean createdCellEditor
          如果當前位於階層樹中的編輯器由此實例創建,則設置為 true。
protected  boolean createdRenderer
          如果當前在階層樹中使用的渲染器由此實例創建,則設置為 true。
protected  TreeCellRenderer currentCellRenderer
          要用於進行實際單元格繪製的渲染器。
protected  int depthOffset
          要正確計算 x 位置應該偏移的深度。
protected  Hashtable<TreePath,Boolean> drawingCache
          用於最小化垂直線的繪製。
protected  Component editingComponent
          編輯時,它將是進行實際編輯的 Component。
protected  TreePath editingPath
          要編輯的路徑。
protected  int editingRow
          要編輯的行。
protected  boolean editorHasDifferentSize
          如果編輯器的大小不同於渲染器,則設置為 true。
protected  Icon expandedIcon
           
protected  boolean largeModel
          如果對 largeModel 進行優化,則為 True。
protected  int lastSelectedRow
          上一次選中行的索引。
protected  int leftChildIndent
          從左頁邊空白到將繪製垂直虛線的位置之間的距離。
protected  AbstractLayoutCache.NodeDimensions nodeDimensions
          負責告知 TreeState 節點所需的大小。
protected  Dimension preferredMinSize
          最小首選大小。
protected  Dimension preferredSize
          完全顯示所有節點所需的大小。
protected  CellRendererPane rendererPane
          用於繪製 TreeCellRenderer。
protected  int rightChildIndent
          添加到 leftChildIndent 以確定將繪製單元格內容的位置的距離。
protected  boolean stopEditingInCompleteEditing
          編輯時設置為 false,shouldSelectCell() 返回 true 表示應該在編輯前選中節點,在 completeEditing 中使用該欄位。
protected  int totalChildIndent
          將縮進的總距離。
protected  JTree tree
          要在其中進行繪製的元件。
protected  TreeModel treeModel
          用於確定要顯示的內容。
protected  TreeSelectionModel treeSelectionModel
          維護選擇的模型。
protected  AbstractLayoutCache treeState
          負責處理大小和展開問題的物件。
protected  boolean validCachedPreferredSize
          preferredSize 是否有效?
 
建構子摘要
BasicTreeUI()
           
 
方法摘要
 void cancelEditing(JTree tree)
          取消當前編輯Session。
protected  void checkForClickInExpandControl(TreePath path, int mouseX, int mouseY)
          如果 mouseXmouseY 位於 row 的展開/折疊區域內,則此方法將切換行。
protected  void completeEditing()
          傳遞訊息以停止編輯Session。
protected  void completeEditing(boolean messageStop, boolean messageCancel, boolean messageTree)
          停止編輯Session。
protected  void completeUIInstall()
          在安裝所有預設值/偵聽器之後根據 installUI 調用。
protected  void completeUIUninstall()
           
protected  void configureLayoutCache()
          基於為其提供外觀的階層樹重置 TreeState 實例。
protected  CellEditorListener createCellEditorListener()
          創建在當前編輯器中處理事件的偵聽器。
protected  CellRendererPane createCellRendererPane()
          返回用於放置渲染器元件的渲染器窗格。
protected  ComponentListener createComponentListener()
          創建並返回新的 ComponentHandler。
protected  TreeCellEditor createDefaultCellEditor()
          創建預設單元格編輯器。
protected  TreeCellRenderer createDefaultCellRenderer()
          返回用於為每個節點添加標誌的預設單元格渲染器。
protected  FocusListener createFocusListener()
          創建失去/獲取焦點時負責更新顯示的偵聽器。
protected  KeyListener createKeyListener()
          創建負責從階層樹獲取鍵事件的偵聽器。
protected  AbstractLayoutCache createLayoutCache()
          創建負責管理展開內容及節點大小的物件。
protected  MouseListener createMouseListener()
          創建負責基於鼠標事件更新選擇的偵聽器。
protected  AbstractLayoutCache.NodeDimensions createNodeDimensions()
          創建能夠確定階層樹中給定節點大小的 NodeDimensions 的實例。
protected  PropertyChangeListener createPropertyChangeListener()
          創建負責基於階層樹的更改方式更新 UI 的偵聽器。
protected  PropertyChangeListener createSelectionModelPropertyChangeListener()
          創建負責從選擇模型獲取屬性更改事件的偵聽器。
protected  TreeExpansionListener createTreeExpansionListener()
          創建並返回在節點展開狀態更改時負責更新 treestate 的物件。
protected  TreeModelListener createTreeModelListener()
          返回可以在模型更改時更新階層樹的偵聽器。
protected  TreeSelectionListener createTreeSelectionListener()
          創建基於選擇更改方法更新顯示的偵聽器。
static ComponentUI createUI(JComponent x)
           
protected  void drawCentered(Component c, Graphics graphics, Icon icon, int x, int y)
           
protected  void drawDashedHorizontalLine(Graphics g, int y, int x1, int x2)
           
protected  void drawDashedVerticalLine(Graphics g, int x, int y1, int y2)
           
protected  void ensureRowsAreVisible(int beginRow, int endRow)
          確保 beginRow 通過 endRow 標識的行是可見的。
 int getBaseline(JComponent c, int width, int height)
          返回基線。
 Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
          返回一個列舉,它指示元件的基線如何隨大小的改變而發生更改。
protected  TreeCellEditor getCellEditor()
           
protected  TreeCellRenderer getCellRenderer()
          返回 currentCellRenderer,可以為階層樹渲染器,也可以為 defaultCellRenderer,無論哪個都不為 null。
 TreePath getClosestPathForLocation(JTree tree, int x, int y)
          返回到達最接近於 x,y 的那個節點的路徑。
 Icon getCollapsedIcon()
           
 TreePath getEditingPath(JTree tree)
          返回到達正被編輯的元素的路徑。
 Icon getExpandedIcon()
           
protected  Color getHashColor()
           
protected  int getHorizontalLegBuffer()
          預設情況下,節點間支路的水平元素開始於子節點左側的右邊。
protected  TreePath getLastChildPath(TreePath parent)
          返回到 parent 的最後一個子節點的路徑。
 int getLeftChildIndent()
           
 Dimension getMaximumSize(JComponent c)
          返回此元件的最大大小,如果實例當前位於 JTree 中或 0, 0 處,則該大小將為首選大小。
 Dimension getMinimumSize(JComponent c)
          返回此元件的最小大小。
protected  TreeModel getModel()
           
 Rectangle getPathBounds(JTree tree, TreePath path)
          返回封閉標籤部分的 Rectangle,路徑中的最後一個項將在這一部分繪製。
 TreePath getPathForRow(JTree tree, int row)
          返回傳入的 row 的路徑。
 Dimension getPreferredMinSize()
          返回最小首選大小。
 Dimension getPreferredSize(JComponent c)
          返回首選大小以正確顯示階層樹,這是一種 getPreferredSize(c, false) 的替代方法。
 Dimension getPreferredSize(JComponent c, boolean checkConsistancy)
          返回首選大小以表示 c 中的階層樹。
 int getRightChildIndent()
           
 int getRowCount(JTree tree)
          返回將顯示的行數。
 int getRowForPath(JTree tree, TreePath path)
          返回可在其中看見路徑中標識的最後一個項的行。
protected  int getRowHeight()
           
protected  int getRowX(int row, int depth)
          返回沿 x 軸呈現特定行的位置。
protected  TreeSelectionModel getSelectionModel()
           
protected  boolean getShowsRootHandles()
           
protected  int getVerticalLegBuffer()
          預設情況下,節點間支路的垂直元素開始於父節點的底部。
protected  void handleExpandControlClick(TreePath path, int mouseX, int mouseY)
          當使用者單擊特定行時傳遞訊息,此方法調用 toggleExpandState。
protected  void installComponents()
          安裝作為渲染器窗格的階層樹的子元件。
protected  void installDefaults()
           
protected  void installKeyboardActions()
           
protected  void installListeners()
           
 void installUI(JComponent c)
          配置指定元件,使其適合外觀。
protected  boolean isEditable()
           
 boolean isEditing(JTree tree)
          如果階層樹正被編輯,則返回 true。
protected  boolean isLargeModel()
           
protected  boolean isLeaf(int row)
           
protected  boolean isLocationInExpandControl(TreePath path, int mouseX, int mouseY)
          如果 mouseXmouseY 落在用於展開/折疊節點的行的區域內,並且 row 的節點不表示葉節點,則返回 true。
protected  boolean isMultiSelectEvent(MouseEvent event)
          返回 true 表示節點上的鼠標事件應該根據錨點作出選擇。
protected  boolean isRootVisible()
           
protected  boolean isToggleEvent(MouseEvent event)
          返回 true 指示應該基於事件切換鼠標下的行。
protected  boolean isToggleSelectionEvent(MouseEvent event)
          返回 true 表示節點上的鼠標事件應該僅切換鼠標下的行的選擇。
 void paint(Graphics g, JComponent c)
          繪製指定元件,使其適合外觀。
protected  void paintExpandControl(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
          繪製 row 的展開(切換)部分。
protected  void paintHorizontalLine(Graphics g, JComponent c, int y, int left, int right)
          繪製水平線。
protected  void paintHorizontalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
          繪製支路 (leg) 的水平部分。
protected  void paintRow(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
          繪製 row 的渲染器部分。
protected  void paintVerticalLine(Graphics g, JComponent c, int x, int top, int bottom)
          繪製垂直線。
protected  void paintVerticalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, TreePath path)
          繪製支路的垂直部分。
protected  void pathWasCollapsed(TreePath path)
          在折疊 VisibleTreeNode 後,從其傳遞訊息。
protected  void pathWasExpanded(TreePath path)
          在展開 VisibleTreeNode 後,從其傳遞訊息。
protected  void prepareForUIInstall()
          在設置 tree 實例變數之後,但在安裝任何預設值/偵聽器之前調用此方法。
protected  void prepareForUIUninstall()
           
protected  void selectPathForEvent(TreePath path, MouseEvent event)
          傳遞訊息以基於特定行上的 MouseEvent 更新選擇。
protected  void setCellEditor(TreeCellEditor editor)
          設置單元格編輯器。
protected  void setCellRenderer(TreeCellRenderer tcr)
          將 TreeCellRenderer 設置為 tcr
 void setCollapsedIcon(Icon newG)
           
protected  void setEditable(boolean newValue)
          配置接收者以允許或不允許進行編輯。
 void setExpandedIcon(Icon newG)
           
protected  void setHashColor(Color color)
           
protected  void setLargeModel(boolean largeModel)
          如果必要,則更新 componentListener。
 void setLeftChildIndent(int newAmount)
           
protected  void setModel(TreeModel model)
          設置 TreeModel。
 void setPreferredMinSize(Dimension newSize)
          設置首選最小大小。
 void setRightChildIndent(int newAmount)
           
protected  void setRootVisible(boolean newValue)
          將根設置為可見。
protected  void setRowHeight(int rowHeight)
          設置行高度,此方法將被轉發到 treeState。
protected  void setSelectionModel(TreeSelectionModel newLSM)
          重置選擇模型。
protected  void setShowsRootHandles(boolean newValue)
          確定是否顯示節點句柄。
protected  boolean shouldPaintExpandControl(TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
          如果應該為指定行繪製展開(切換)控制元件,則返回 true。
protected  boolean startEditing(TreePath path, MouseEvent event)
          如果存在 cellEditor 並且 shouldSelectCell 返回 true,則啟動節點的編輯操作。
 void startEditingAtPath(JTree tree, TreePath path)
          選擇路徑中的最後一個項並嘗試對其進行編輯。
 boolean stopEditing(JTree tree)
          停止當前編輯Session。
protected  void toggleExpandState(TreePath path)
          如果路徑不是展開的,則展開它;如果它是展開的,則折疊它。
protected  void uninstallComponents()
          卸載渲染器窗格。
protected  void uninstallDefaults()
           
protected  void uninstallKeyboardActions()
           
protected  void uninstallListeners()
           
 void uninstallUI(JComponent c)
          在 installUI 期間,在指定元件上反向執行的配置操作。
protected  void updateCachedPreferredSize()
          更新 preferredSize 實例變數,該變數從 getPreferredSize() 返回。
protected  void updateCellEditor()
          基於包含所在的 JTree 的可編輯性更新 cellEditor。
protected  void updateDepthOffset()
          更新每次應該偏移的深度量。
protected  void updateExpandedDescendants(TreePath path)
          通過從階層樹獲取展開的子代並將其轉發到階層樹狀態來更新 path 的所有子代的展開狀態。
protected  void updateLayoutCacheExpandedNodes()
          讓在 JTree 中展開的所有節點在 LayoutCache 中展開。
protected  void updateRenderer()
          當渲染器更改時從所處的階層樹中傳遞訊息。
protected  void updateSize()
          將快取記憶體大小標記為無效並使用 treeDidChange 傳遞階層樹的資訊。
 
從類別 javax.swing.plaf.ComponentUI 繼承的方法
contains, getAccessibleChild, getAccessibleChildrenCount, update
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

collapsedIcon

protected transient Icon collapsedIcon

expandedIcon

protected transient Icon expandedIcon

leftChildIndent

protected int leftChildIndent
從左頁邊空白到將繪製垂直虛線的位置之間的距離。


rightChildIndent

protected int rightChildIndent
添加到 leftChildIndent 以確定將繪製單元格內容的位置的距離。


totalChildIndent

protected int totalChildIndent
將縮進的總距離。leftChildIndent 和 rightChildIndent 的和。


preferredMinSize

protected Dimension preferredMinSize
最小首選大小。


lastSelectedRow

protected int lastSelectedRow
上一次選中行的索引。


tree

protected JTree tree
要在其中進行繪製的元件。


currentCellRenderer

protected transient TreeCellRenderer currentCellRenderer
要用於進行實際單元格繪製的渲染器。


createdRenderer

protected boolean createdRenderer
如果當前在階層樹中使用的渲染器由此實例創建,則設置為 true。


cellEditor

protected transient TreeCellEditor cellEditor
階層樹的編輯器。


createdCellEditor

protected boolean createdCellEditor
如果當前位於階層樹中的編輯器由此實例創建,則設置為 true。


stopEditingInCompleteEditing

protected boolean stopEditingInCompleteEditing
編輯時設置為 false,shouldSelectCell() 返回 true 表示應該在編輯前選中節點,在 completeEditing 中使用該欄位。


rendererPane

protected CellRendererPane rendererPane
用於繪製 TreeCellRenderer。


preferredSize

protected Dimension preferredSize
完全顯示所有節點所需的大小。


validCachedPreferredSize

protected boolean validCachedPreferredSize
preferredSize 是否有效?


treeState

protected AbstractLayoutCache treeState
負責處理大小和展開問題的物件。


drawingCache

protected Hashtable<TreePath,Boolean> drawingCache
用於最小化垂直線的繪製。


largeModel

protected boolean largeModel
如果對 largeModel 進行優化,則為 True。不支持它的子類別可能希望覆寫 createLayoutCache 以便不返回 FixedHeightLayoutCache 實例。


nodeDimensions

protected AbstractLayoutCache.NodeDimensions nodeDimensions
負責告知 TreeState 節點所需的大小。


treeModel

protected TreeModel treeModel
用於確定要顯示的內容。


treeSelectionModel

protected TreeSelectionModel treeSelectionModel
維護選擇的模型。


depthOffset

protected int depthOffset
要正確計算 x 位置應該偏移的深度。它依賴於根是否可見以及根句柄是否可見。


editingComponent

protected Component editingComponent
編輯時,它將是進行實際編輯的 Component。


editingPath

protected TreePath editingPath
要編輯的路徑。


editingRow

protected int editingRow
要編輯的行。僅當 editingComponent 不為 null 時才參考。


editorHasDifferentSize

protected boolean editorHasDifferentSize
如果編輯器的大小不同於渲染器,則設置為 true。

建構子詳細資訊

BasicTreeUI

public BasicTreeUI()
方法詳細資訊

createUI

public static ComponentUI createUI(JComponent x)

getHashColor

protected Color getHashColor()

setHashColor

protected void setHashColor(Color color)

setLeftChildIndent

public void setLeftChildIndent(int newAmount)

getLeftChildIndent

public int getLeftChildIndent()

setRightChildIndent

public void setRightChildIndent(int newAmount)

getRightChildIndent

public int getRightChildIndent()

setExpandedIcon

public void setExpandedIcon(Icon newG)

getExpandedIcon

public Icon getExpandedIcon()

setCollapsedIcon

public void setCollapsedIcon(Icon newG)

getCollapsedIcon

public Icon getCollapsedIcon()

setLargeModel

protected void setLargeModel(boolean largeModel)
如果必要,則更新 componentListener。


isLargeModel

protected boolean isLargeModel()

setRowHeight

protected void setRowHeight(int rowHeight)
設置行高度,此方法將被轉發到 treeState。


getRowHeight

protected int getRowHeight()

setCellRenderer

protected void setCellRenderer(TreeCellRenderer tcr)
將 TreeCellRenderer 設置為 tcr。此方法調用 updateRenderer


getCellRenderer

protected TreeCellRenderer getCellRenderer()
返回 currentCellRenderer,可以為階層樹渲染器,也可以為 defaultCellRenderer,無論哪個都不為 null。


setModel

protected void setModel(TreeModel model)
設置 TreeModel。


getModel

protected TreeModel getModel()

setRootVisible

protected void setRootVisible(boolean newValue)
將根設置為可見。


isRootVisible

protected boolean isRootVisible()

setShowsRootHandles

protected void setShowsRootHandles(boolean newValue)
確定是否顯示節點句柄。


getShowsRootHandles

protected boolean getShowsRootHandles()

setCellEditor

protected void setCellEditor(TreeCellEditor editor)
設置單元格編輯器。


getCellEditor

protected TreeCellEditor getCellEditor()

setEditable

protected void setEditable(boolean newValue)
配置接收者以允許或不允許進行編輯。


isEditable

protected boolean isEditable()

setSelectionModel

protected void setSelectionModel(TreeSelectionModel newLSM)
重置選擇模型。在模型上安裝適當的偵聽器。


getSelectionModel

protected TreeSelectionModel getSelectionModel()

getPathBounds

public Rectangle getPathBounds(JTree tree,
                               TreePath path)
返回封閉標籤部分的 Rectangle,路徑中的最後一個項將在這一部分繪製。如果路徑中的任何元件當前有效,則返回 null。

指定者:
類別 TreeUI 中的 getPathBounds

getPathForRow

public TreePath getPathForRow(JTree tree,
                              int row)
返回傳入的 row 的路徑。如果 row 不可見,則返回 null。

指定者:
類別 TreeUI 中的 getPathForRow

getRowForPath

public int getRowForPath(JTree tree,
                         TreePath path)
返回可在其中看見路徑中標識的最後一個項的行。如果路徑中的所有元素當前都是不可見的,則返回 -1。

指定者:
類別 TreeUI 中的 getRowForPath

getRowCount

public int getRowCount(JTree tree)
返回將顯示的行數。

指定者:
類別 TreeUI 中的 getRowCount

getClosestPathForLocation

public TreePath getClosestPathForLocation(JTree tree,
                                          int x,
                                          int y)
返回到達最接近於 x,y 的那個節點的路徑。如果當前不可見,則返回 null,否則該方法總是返回一條有效路徑。如果要測試返回的物件是否正好位於 x, y,則應該獲取返回路徑的邊界,並根據該邊界測試 x,y。

指定者:
類別 TreeUI 中的 getClosestPathForLocation

isEditing

public boolean isEditing(JTree tree)
如果階層樹正被編輯,則返回 true。正被編輯的項可由 getEditingPath() 返回。

指定者:
類別 TreeUI 中的 isEditing

stopEditing

public boolean stopEditing(JTree tree)
停止當前編輯Session。如果不在編輯階層樹,則此方法無效。如果編輯器允許停止編輯Session,則返回 true。

指定者:
類別 TreeUI 中的 stopEditing

cancelEditing

public void cancelEditing(JTree tree)
取消當前編輯Session。

指定者:
類別 TreeUI 中的 cancelEditing

startEditingAtPath

public void startEditingAtPath(JTree tree,
                               TreePath path)
選擇路徑中的最後一個項並嘗試對其進行編輯。如果 CellEditor 不允許對所選項進行編輯操作,則編輯將失敗。

指定者:
類別 TreeUI 中的 startEditingAtPath

getEditingPath

public TreePath getEditingPath(JTree tree)
返回到達正被編輯的元素的路徑。

指定者:
類別 TreeUI 中的 getEditingPath

installUI

public void installUI(JComponent c)
從類別 ComponentUI 複製的描述
配置指定元件,使其適合外觀。當 ComponentUI 實例將作為 UI 委託安裝在指定元件上時,可調用此方法。此方法應該為外觀完整地配置元件,包括以下方面:
  1. 在元件上安裝用於顏色、字體、邊框、圖標、不透明性等方面的所有預設屬性值。只要有可能,就 應該覆寫由客戶端程序初始化的屬性值。
  2. 如有必要,可在元件上安裝一個 LayoutManager
  3. 將所需的所有子元件創建/添加到元件中。
  4. 在元件上創建/安裝事件偵聽器。
  5. 為了檢測和適當回應元件屬性更改,可在元件上創建/安裝一個 PropertyChangeListener
  6. 在元件上安裝鍵盤 UI(助記符、遍歷等等)。
  7. 初始化任何適當的實例資料。

覆寫:
類別 ComponentUI 中的 installUI
參數:
c - 將安裝此 UI 委託的元件
另請參見:
ComponentUI.uninstallUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()

prepareForUIInstall

protected void prepareForUIInstall()
在設置 tree 實例變數之後,但在安裝任何預設值/偵聽器之前調用此方法。


completeUIInstall

protected void completeUIInstall()
在安裝所有預設值/偵聽器之後根據 installUI 調用。


installDefaults

protected void installDefaults()

installListeners

protected void installListeners()

installKeyboardActions

protected void installKeyboardActions()

installComponents

protected void installComponents()
安裝作為渲染器窗格的階層樹的子元件。


createNodeDimensions

protected AbstractLayoutCache.NodeDimensions createNodeDimensions()
創建能夠確定階層樹中給定節點大小的 NodeDimensions 的實例。


createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener()
創建負責基於階層樹的更改方式更新 UI 的偵聽器。


createMouseListener

protected MouseListener createMouseListener()
創建負責基於鼠標事件更新選擇的偵聽器。


createFocusListener

protected FocusListener createFocusListener()
創建失去/獲取焦點時負責更新顯示的偵聽器。


createKeyListener

protected KeyListener createKeyListener()
創建負責從階層樹獲取鍵事件的偵聽器。


createSelectionModelPropertyChangeListener

protected PropertyChangeListener createSelectionModelPropertyChangeListener()
創建負責從選擇模型獲取屬性更改事件的偵聽器。


createTreeSelectionListener

protected TreeSelectionListener createTreeSelectionListener()
創建基於選擇更改方法更新顯示的偵聽器。


createCellEditorListener

protected CellEditorListener createCellEditorListener()
創建在當前編輯器中處理事件的偵聽器。


createComponentListener

protected ComponentListener createComponentListener()
創建並返回新的 ComponentHandler。它用於大型模型,在元件移動時將 validCachedPreferredSize 標記為無效。


createTreeExpansionListener

protected TreeExpansionListener createTreeExpansionListener()
創建並返回在節點展開狀態更改時負責更新 treestate 的物件。


createLayoutCache

protected AbstractLayoutCache createLayoutCache()
創建負責管理展開內容及節點大小的物件。


createCellRendererPane

protected CellRendererPane createCellRendererPane()
返回用於放置渲染器元件的渲染器窗格。


createDefaultCellEditor

protected TreeCellEditor createDefaultCellEditor()
創建預設單元格編輯器。


createDefaultCellRenderer

protected TreeCellRenderer createDefaultCellRenderer()
返回用於為每個節點添加標誌的預設單元格渲染器。


createTreeModelListener

protected TreeModelListener createTreeModelListener()
返回可以在模型更改時更新階層樹的偵聽器。


uninstallUI

public void uninstallUI(JComponent c)
從類別 ComponentUI 複製的描述
installUI 期間,在指定元件上反向執行的配置操作。當此 UIComponent 實例將作為 UI 委託從指定元件上移除時,可調用此方法。此方法應該取消在 installUI 中執行的配置操作,非常小心地使 JComponent 實例處於某種潔淨狀態(沒有額外的偵聽器、沒有特定於外觀的屬性物件等等)。配置內容應該套件括以下方面:
  1. 從元件中移除所有 UI 設置的邊框。
  2. 從元件上移除所有 UI 設置的佈局管理器。
  3. 從元件中移除所有 UI 添加的子元件。
  4. 從元件中移除所有 UI 添加的事件/屬性偵聽器。
  5. 從元件中移除所有 UI 安裝的鍵盤 UI。
  6. 使所有已分派的實例資料物件無效,從而允許進行 GC 操作。

覆寫:
類別 ComponentUI 中的 uninstallUI
參數:
c - 從中移除此 UI 委託的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
另請參見:
ComponentUI.installUI(javax.swing.JComponent), JComponent.updateUI()

prepareForUIUninstall

protected void prepareForUIUninstall()

completeUIUninstall

protected void completeUIUninstall()

uninstallDefaults

protected void uninstallDefaults()

uninstallListeners

protected void uninstallListeners()

uninstallKeyboardActions

protected void uninstallKeyboardActions()

uninstallComponents

protected void uninstallComponents()
卸載渲染器窗格。


getBaseline

public int getBaseline(JComponent c,
                       int width,
                       int height)
返回基線。

覆寫:
類別 ComponentUI 中的 getBaseline
參數:
c - 為其請求基線的 JComponent
width - 為其獲取基線的寬度
height - 為其獲取基線的高度
返回:
基線;如果沒有合理的基線,則返回 < 0 的值
拋出:
NullPointerException - 如果 cnull
IllegalArgumentException - 如果寬度或高度 < 0
從以下版本開始:
1.6
另請參見:
JComponent.getBaseline(int, int)

getBaselineResizeBehavior

public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
返回一個列舉,它指示元件的基線如何隨大小的改變而發生更改。

覆寫:
類別 ComponentUI 中的 getBaselineResizeBehavior
參數:
c - 為其返回調整大小行為的 JComponent
返回:
一個列舉,指示基線如何隨元件大小的改變而發生更改
拋出:
NullPointerException - 如果 cnull
從以下版本開始:
1.6
另請參見:
JComponent.getBaseline(int, int)

paint

public void paint(Graphics g,
                  JComponent c)
從類別 ComponentUI 複製的描述
繪製指定元件,使其適合外觀。在將要繪製指定元件時,從 ComponentUI.update 方法中調用此方法。子類別應該覆寫此方法並使用指定 Graphics 物件來呈現元件的內容。

覆寫:
類別 ComponentUI 中的 paint
參數:
g - 將在其中進行繪製的 Graphics 上下文
c - 將繪製的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
另請參見:
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)

paintHorizontalPartOfLeg

protected void paintHorizontalPartOfLeg(Graphics g,
                                        Rectangle clipBounds,
                                        Insets insets,
                                        Rectangle bounds,
                                        TreePath path,
                                        int row,
                                        boolean isExpanded,
                                        boolean hasBeenExpanded,
                                        boolean isLeaf)
繪製支路 (leg) 的水平部分。接收者不應修改 clipBoundsinsets

註:如果階層樹不可見,則 parentRow 為 -1。


paintVerticalPartOfLeg

protected void paintVerticalPartOfLeg(Graphics g,
                                      Rectangle clipBounds,
                                      Insets insets,
                                      TreePath path)
繪製支路的垂直部分。接收者不應修改 clipBoundsinsets


paintExpandControl

protected void paintExpandControl(Graphics g,
                                  Rectangle clipBounds,
                                  Insets insets,
                                  Rectangle bounds,
                                  TreePath path,
                                  int row,
                                  boolean isExpanded,
                                  boolean hasBeenExpanded,
                                  boolean isLeaf)
繪製 row 的展開(切換)部分。接收者不應修改 clipBoundsinsets


paintRow

protected void paintRow(Graphics g,
                        Rectangle clipBounds,
                        Insets insets,
                        Rectangle bounds,
                        TreePath path,
                        int row,
                        boolean isExpanded,
                        boolean hasBeenExpanded,
                        boolean isLeaf)
繪製 row 的渲染器部分。接收者不應修改 clipBoundsinsets


shouldPaintExpandControl

protected boolean shouldPaintExpandControl(TreePath path,
                                           int row,
                                           boolean isExpanded,
                                           boolean hasBeenExpanded,
                                           boolean isLeaf)
如果應該為指定行繪製展開(切換)控制元件,則返回 true。


paintVerticalLine

protected void paintVerticalLine(Graphics g,
                                 JComponent c,
                                 int x,
                                 int top,
                                 int bottom)
繪製垂直線。


paintHorizontalLine

protected void paintHorizontalLine(Graphics g,
                                   JComponent c,
                                   int y,
                                   int left,
                                   int right)
繪製水平線。


getVerticalLegBuffer

protected int getVerticalLegBuffer()
預設情況下,節點間支路的垂直元素開始於父節點的底部。此方法能讓支路從該位置以下開始。


getHorizontalLegBuffer

protected int getHorizontalLegBuffer()
預設情況下,節點間支路的水平元素開始於子節點左側的右邊。此方法能讓支路在該位置以前結束。


drawCentered

protected void drawCentered(Component c,
                            Graphics graphics,
                            Icon icon,
                            int x,
                            int y)

drawDashedHorizontalLine

protected void drawDashedHorizontalLine(Graphics g,
                                        int y,
                                        int x1,
                                        int x2)

drawDashedVerticalLine

protected void drawDashedVerticalLine(Graphics g,
                                      int x,
                                      int y1,
                                      int y2)

getRowX

protected int getRowX(int row,
                      int depth)
返回沿 x 軸呈現特定行的位置。返回值不包括在 JTree 上指定的任何 Insets。此方法不檢查行或深度的有效性,只是假定其正確;如果行或深度與階層樹的行或深度不比對,則其也不拋出 Exception。

參數:
row - 返回 x 位置的行
depth - 行的深度
返回:
給定行的縮進量。
從以下版本開始:
1.5

updateLayoutCacheExpandedNodes

protected void updateLayoutCacheExpandedNodes()
讓在 JTree 中展開的所有節點在 LayoutCache 中展開。此方法通過根路徑調用 updateExpandedDescendants。


updateExpandedDescendants

protected void updateExpandedDescendants(TreePath path)
通過從階層樹獲取展開的子代並將其轉發到階層樹狀態來更新 path 的所有子代的展開狀態。


getLastChildPath

protected TreePath getLastChildPath(TreePath parent)
返回到 parent 的最後一個子節點的路徑。


updateDepthOffset

protected void updateDepthOffset()
更新每次應該偏移的深度量。


updateCellEditor

protected void updateCellEditor()
基於包含所在的 JTree 的可編輯性更新 cellEditor。如果階層樹可編輯但不具有 cellEditor,則使用基本的 cellEditor。


updateRenderer

protected void updateRenderer()
當渲染器更改時從所處的階層樹中傳遞訊息。


configureLayoutCache

protected void configureLayoutCache()
基於為其提供外觀的階層樹重置 TreeState 實例。


updateSize

protected void updateSize()
將快取記憶體大小標記為無效並使用 treeDidChange 傳遞階層樹的資訊。


updateCachedPreferredSize

protected void updateCachedPreferredSize()
更新 preferredSize 實例變數,該變數從 getPreferredSize() 返回。

對於從左到右方向,大小是根據當前的 AbstractLayoutCache 確定的。對於 RTL 方向,首選大小為寬度減去最小 x 位置。


pathWasExpanded

protected void pathWasExpanded(TreePath path)
在展開 VisibleTreeNode 後,從其傳遞訊息。


pathWasCollapsed

protected void pathWasCollapsed(TreePath path)
在折疊 VisibleTreeNode 後,從其傳遞訊息。


ensureRowsAreVisible

protected void ensureRowsAreVisible(int beginRow,
                                    int endRow)
確保 beginRow 通過 endRow 標識的行是可見的。


setPreferredMinSize

public void setPreferredMinSize(Dimension newSize)
設置首選最小大小。


getPreferredMinSize

public Dimension getPreferredMinSize()
返回最小首選大小。


getPreferredSize

public Dimension getPreferredSize(JComponent c)
返回首選大小以正確顯示階層樹,這是一種 getPreferredSize(c, false) 的替代方法。

覆寫:
類別 ComponentUI 中的 getPreferredSize
參數:
c - 將查詢其首選大小的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
另請參見:
JComponent.getPreferredSize(), LayoutManager.preferredLayoutSize(java.awt.Container)

getPreferredSize

public Dimension getPreferredSize(JComponent c,
                                  boolean checkConsistancy)
返回首選大小以表示 c 中的階層樹。如果 checkConsistancy 為 true,則首先傳遞 checkConsistancy 的訊息。


getMinimumSize

public Dimension getMinimumSize(JComponent c)
返回此元件的最小大小。該大小將為最小首選大小或 0, 0。

覆寫:
類別 ComponentUI 中的 getMinimumSize
參數:
c - 將查詢其最小大小的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
返回:
一個 Dimension 物件或 null
另請參見:
JComponent.getMinimumSize(), LayoutManager.minimumLayoutSize(java.awt.Container), ComponentUI.getPreferredSize(javax.swing.JComponent)

getMaximumSize

public Dimension getMaximumSize(JComponent c)
返回此元件的最大大小,如果實例當前位於 JTree 中或 0, 0 處,則該大小將為首選大小。

覆寫:
類別 ComponentUI 中的 getMaximumSize
參數:
c - 將查詢其最大大小的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
返回:
一個 Dimension 物件或 null
另請參見:
JComponent.getMaximumSize(), LayoutManager2.maximumLayoutSize(java.awt.Container)

completeEditing

protected void completeEditing()
傳遞訊息以停止編輯Session。如果接收者為其提供外觀的 UI 從 getInvokesStopCellEditing 返回 true,則在當前編輯器上調用 stopCellEditing。然後對 completeEditing 傳遞 false 或 true 訊息,false 表示取消所有遺留的編輯。


completeEditing

protected void completeEditing(boolean messageStop,
                               boolean messageCancel,
                               boolean messageTree)
停止編輯Session。如果 messageStop 為 true,則對編輯器傳遞 stopEditing 的訊息;如果 messageCancel 為 true,則對編輯器傳遞 cancelEditing 的訊息。如果 messageTree 為 true,則對 treeModel 傳遞 valueForPathChanged 的訊息。


startEditing

protected boolean startEditing(TreePath path,
                               MouseEvent event)
如果存在 cellEditor 並且 shouldSelectCell 返回 true,則啟動節點的編輯操作。

此方法假定路徑有效且可見。


checkForClickInExpandControl

protected void checkForClickInExpandControl(TreePath path,
                                            int mouseX,
                                            int mouseY)
如果 mouseXmouseY 位於 row 的展開/折疊區域內,則此方法將切換行。


isLocationInExpandControl

protected boolean isLocationInExpandControl(TreePath path,
                                            int mouseX,
                                            int mouseY)
如果 mouseXmouseY 落在用於展開/折疊節點的行的區域內,並且 row 的節點不表示葉節點,則返回 true。


handleExpandControlClick

protected void handleExpandControlClick(TreePath path,
                                        int mouseX,
                                        int mouseY)
當使用者單擊特定行時傳遞訊息,此方法調用 toggleExpandState。


toggleExpandState

protected void toggleExpandState(TreePath path)
如果路徑不是展開的,則展開它;如果它是展開的,則折疊它。如果展開路徑且 JTree 在展開的基礎上滾動,則調用 ensureRowsAreVisible 以滾動盡可能多的可見子節點(試圖滾動到路徑的最後一個可見子代)。


isToggleSelectionEvent

protected boolean isToggleSelectionEvent(MouseEvent event)
返回 true 表示節點上的鼠標事件應該僅切換鼠標下的行的選擇。


isMultiSelectEvent

protected boolean isMultiSelectEvent(MouseEvent event)
返回 true 表示節點上的鼠標事件應該根據錨點作出選擇。


isToggleEvent

protected boolean isToggleEvent(MouseEvent event)
返回 true 指示應該基於事件切換鼠標下的行。此方法在 checkForClickInExpandControl 之後調用,暗指該位置不受展開(切換)的控制


selectPathForEvent

protected void selectPathForEvent(TreePath path,
                                  MouseEvent event)
傳遞訊息以基於特定行上的 MouseEvent 更新選擇。如果事件為切換選擇事件,則或者選擇行或者取消選擇行。如果事件標識多選擇事件,則根據定位點更新選擇。否則,選擇行;如果事件指定了切換事件,則展開/折疊行。


isLeaf

protected boolean isLeaf(int row)
返回:
如果位於 row 的節點是葉節點,則返回 true。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only