2014-12-03 146 views
-1

你好傢伙我正在使用JTextArea在java swing中編寫一個簡單的gui編輯器。但現在我想要能夠右鍵單擊並選擇剪切,複製,粘貼和選擇全部並可能更改字體。我需要幫助實現剪切,複製或粘貼JTextArea選項。幫助將不勝感激。 下面是我的代碼片段:需要幫助在JTextArea中實現mouselistener

public class Example extends JPanel 
{ 
    private JTextArea area; 
    private JScrollPane scpane; 

    public Example() 
    { 
     super("My Text Editor"); 
     setUp(); 
    } 

    private void setUp() 
    { 
     area = new JTextArea(); 
     scpane= new JScrollPane(area); 

     area.addMouseListener(
      new MouseAdapter() 
      { 
       public void mousePressed(MouseEvent e) 
       { 
        if(e.getButton()==MouseEvent.BUTTON3) 
        { 
         //having difficulty how to set up the copy, cut or paste option 
         //with the mouse in JTextArea. 
        } 
       } 
      }); 
     } 
    } 
} 
+0

*「我需要幫助實施該選項..」* SO不是幫助臺,它是問答網站。把'右鍵點擊java'放到你最喜歡的搜索引擎中,並按照5個頂部鏈接。自己嘗試一下。如果您有特定的*問題*和[MCVE](http://stackoverflow.com/help/mcve)或[SSCCE](http://www.sscce.org/),請回復我們。投票結束這個「太廣泛」。 – 2014-12-03 00:49:22

回答

3

開始採取看看JComponent#setComponentPopupMenu,這將讓你與一個部件的JPopupMenu關聯,並具有當用戶觸發相應的,系統的具體它會自動顯示,觸發。

接下來,一起來看看:

現在,如果你真的很聰明,你會提取相關Action s用於複製/剪切/粘貼操作在JTextArea的關鍵綁定的離子被包裹周圍自己Action,底肥那些你JPopupMenu並把它全部免費......

例如...

JTextArea ta = new JTextArea(); 
    ActionMap am = ta.getActionMap(); 

    Action paste = am.get("paste-from-clipboard"); 
    Action copy = am.get("copy-to-clipboard"); 
    Action cut = am.get("cut-to-clipboard"); 

How to Use ActionsHow to Use Key Bindings爲更多詳情

+1

參見引用的[這裏]示例(http://stackoverflow.com/a/10167091/230513)。 – trashgod 2014-12-03 03:17:05