我在从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();
}
我没有收到任何错误消息,但它无法正常工作。任何帮助将不胜感激
答案 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");
}
}
}