需要在JTextArea中实现mouselistener的帮助

时间:2014-12-03 00:45:12

标签: java swing mouseevent jtextarea

大家好我正在使用JTextArea在java swing中编写一个简单的gui编辑器。但现在我希望能够右键单击并选择剪切,复制,粘贴和选择所有字体并可能更改字体。我需要帮助实现在JTextArea中剪切,复制或粘贴的选项。帮助将不胜感激。 以下是我的代码片段:

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.
                    }
                }
            });
        }
    }
}

1 个答案:

答案 0 :(得分:3)

首先查看JComponent#setComponentPopupMenu,它允许您将JPopupMenu与组件关联,并在用户触发相应的系统特定触发器时自动显示该组件。

接下来,看看:

现在,如果您真的很聪明,那么您将提取相关的Action用于JTextArea的密钥绑定的复制/剪切/粘贴操作包裹您自己的{{1}在他们周围,将这些应用到你的Action并免费获得...

例如......

JPopupMenu

有关详细信息,请参阅How to Use ActionsHow to Use Key Bindings