在java中实现复制/粘贴操作

时间:2013-08-04 04:31:49

标签: java swing copy paste jtextcomponent

我在从JTextComponent工作中获取复制和粘贴方法时遇到了一些问题

对于我的程序,我有一个字符串数组,这将是菜单选项。 “复制”和“粘贴”是其中两种。

 else if (e.getActionCommand().equalsIgnoreCase("Copy"))
            {
                JTextArea a = new JTextArea();
                a.setEditable(true);
                a.copy();
            }
            else if (e.getActionCommand().equalsIgnoreCase("Paste"))
            {
               JTextArea a = new JTextArea();
                a.setEditable(true);
                 a.getSelectedText();
                 a.paste();
            }

我没有收到任何错误消息,但它无法正常工作。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

每次要执行操作时,您都会创建JTextArea的新实例。

这些不代表屏幕上的实际内容。相反,与实例变量交互或将屏幕上的JTextArea实例作为参数传递

答案 1 :(得分:0)

您正在声明一个本地对象,其范围仅限于if条件:

            else if (e.getActionCommand().equalsIgnoreCase("Copy"))
            {
                JTextArea a = new JTextArea();    // CREATING A NEW OBJECT
                a.setEditable(true);
                a.copy();
            }                // AS Soon as the code comes HERE THE Instance IS LOST with the data

声明;

 JTextArea a = new JTextArea();  outside the if condition, maybe in the class before main(){}
 Create an private instance variable of the same.

希望这会有所帮助。如果您有任何问题,请告诉我。

class TEST{
         public JTextArea a = new JTextArea();   

          TEST objectOfTEST = new TEST():
          publis static String someText = "";

         public static void main(String[] args){

               if(e.getActionCommand().equalsIgnoreCase("Copy")){
                   someText = objectOfTEST.a.getText();
               }
               else if(e.getActionCommand().equalsIgnoreCase("Paste")){
                   // PERFORM SOME OPERATION
                   someText = "Paste this";
                   objectOfTEST.a.setText("Some TEXT that you want to set here");
               }
         }
}