[英]Swing Action with JTree
在開發Swing應用程序時,我使用Action
而不是Listener
。 我有一個通常從AbstractButtons
觸發的動作,但現在我需要在選擇JTree
節點時觸發它。
由於TreeSelectionModel
不支持Actions,我想知道將此歸檔的最佳實踐是什么。
到目前為止,我想出了實現一個通用方法的想法,該方法是從actionPerformed(ActionEvent)
調用的,也是從addTreeSelectionListener(TreeSelectListener)
調用的。
誰有更好的主意?
這似乎可能會增加TreeModel
與其視圖組件JTree
之間的耦合。 由於Action
實例通常用於鍵綁定 ,因此查看為常見的Look&Feel實現定義的現有操作可能會有所幫助,如@ camickr的文章Key Bindings所示 。 可以從TreeSelectionListener
引發這些操作,如此示例中所示,該示例利用了滾動窗格操作。
附錄:作為參考, 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.