アドバイスとキーワードありがとうございます。私は部分的に勝ちます:)
私の場合はうまくいきます:
// atributes
private static JMenuItem editPaste;
private static Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
// private method
clipboard.addFlavorListener(new ListenerPaste());
editPaste = new JMenuItem(new DefaultEditorKit.PasteAction());
editPaste.setEnabled(false);
// listener
private static class ListenerPaste implements FlavorListener {
public void flavorsChanged(FlavorEvent e) {
checkPaste();
}
}
// private method
private static void checkPaste() {
try {
if(clipboard.getData(DataFlavor.stringFlavor) != null) {
editPaste.setEnabled(true);
// JOptionPane.showMessageDialog(null, (String) clipboard.getData(DataFlavor.stringFlavor));
}
} catch (UnsupportedFlavorException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
// in constructor we check it also
checkPaste();
これが最も適切な解決策であるかどうかはわかりませんが、私にとってはうまくいきます。コメントされているその行-リアルタイムではあまりうまく機能しません-詳細:クリップボードの変更をリッスンし、所有権を確認しますか?
次のソース:
http://www.avajava.com/tutorials/lessons/how-do-i-get-a-string-from-the-clipboard.html