這似乎可能會增加您的TreeModel
與其視圖組件JTree
之間的耦合。由於Action
實例經常在key bindings中使用,因此可能有助於查看針對常見Look &定義的現有操作感受實現,如@ camickr的文章Key Bindings中所示。這些操作可以從您的TreeSelectionListener
引發,如此example中所示,它利用滾動窗格操作。
附錄:供參考,javax.swing.plaf.metal.MetalLookAndFeel
定義了這些JTree
動作和綁定。
Action Focused Ancestor
------ ------ -------
addToSelection SPACE
cancel ESCAPE
clearSelection ctrl BACK_SLASH
collapse SUBTRACT
copy ctrl INSERT, ctrl C, COPY
cut CUT, shift DELETE, ctrl X
expand ADD
extendTo shift SPACE
moveSelectionTo shift ctrl SPACE
moveSelectionToParent
paste shift INSERT, ctrl V, PASTE
scrollDownChangeLead ctrl PAGE_DOWN
scrollDownChangeSelection PAGE_DOWN
scrollDownExtendSelection shift ctrl PAGE_DOWN, shift PAGE_DOWN
scrollLeft ctrl LEFT, ctrl KP_LEFT
scrollLeftChangeLead
scrollLeftExtendSelection
scrollRight ctrl RIGHT, ctrl KP_RIGHT
scrollRightChangeLead
scrollRightExtendSelection
scrollUpChangeLead ctrl PAGE_UP
scrollUpChangeSelection PAGE_UP
scrollUpExtendSelection shift PAGE_UP, shift ctrl PAGE_UP
selectAll ctrl SLASH, ctrl A
selectChild RIGHT, KP_RIGHT
selectChildChangeLead
selectFirst HOME
selectFirstChangeLead ctrl HOME
selectFirstExtendSelection shift HOME, shift ctrl HOME
selectLast END
selectLastChangeLead ctrl END
selectLastExtendSelection shift END, shift ctrl END
selectNext DOWN, KP_DOWN
selectNextChangeLead ctrl DOWN, ctrl KP_DOWN
selectNextExtendSelection shift ctrl DOWN, shift DOWN, shift ctrl KP_DOWN, shift KP_DOWN
selectParent LEFT, KP_LEFT
selectParentChangeLead
selectPrevious KP_UP, UP
selectPreviousChangeLead ctrl UP, ctrl KP_UP
selectPreviousExtendSelection shift UP, shift KP_UP, shift ctrl UP, shift ctrl KP_UP
startEditing F2
toggle
toggleAndAnchor ctrl SPACE
發佈[MCVE](http://stackoverflow.com/help/mcve)尋求幫助。 – alex2410
@ alex2410這是一個相當普遍的問題,但沒有具體的實現。 – Hannes