Java,剪贴板代码不工作,
程序应分析剪贴板中是否存在以1开头的5位数字。问题是,当复制文本时,如果(clipboardContent.length()==5)程序停止工作,我不会回答Java,剪贴板代码不工作,,java,if-statement,clipboard,Java,If Statement,Clipboard,程序应分析剪贴板中是否存在以1开头的5位数字。问题是,当复制文本时,如果(clipboardContent.length()==5)程序停止工作,我不会回答 import java.awt.*; import java.awt.datatransfer.*; import java.io.IOException; public class drob implements FlavorListener { private static Clipboard clipboard = Tool
import java.awt.*;
import java.awt.datatransfer.*;
import java.io.IOException;
public class drob implements FlavorListener {
private static Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
public static void main(String[] args) throws InterruptedException {
clipboard.addFlavorListener(new drob());
// fall asleep for 100 seconds, otherwise the program will immediately end
Thread.sleep(100 * 1000);
}
@Override
public void flavorsChanged(FlavorEvent event) {
try {
String clipboardContent = (String) clipboard.getData(DataFlavor.stringFlavor);
handleClipboardContent(clipboardContent);
} catch (UnsupportedFlavorException | IOException e) {
// TODO handle the error
e.printStackTrace();
}
}
private void handleClipboardContent(String clipboardContent) {
// check if the string satisfies condition
// for example, check that the length of the string is five
if (clipboardContent.length() == 5) {
System.out.println(clipboardContent);
}
}
}
您没有检查clipboardContent
中的null
。只要改变一下:
if (clipboardContent.length() == 5) {...}
致:
“程序停止工作。”如果您遇到错误或异常,您应该告诉我们并发布stacktrace。“它停止工作”本身对我们来说不是很有用。正因为如此,您试图在clipboardContent上运行.length(),而“you don't answer”,这意味着它为null…因此意味着您得到了NullPointerException?
if (clipboardContent != null && clipboardContent.length() == 5) {...}