アプリ版:「スタンプのみでお礼する」機能のリリースについて

クリップボードについて教えていただきたいと思います。

コピーを行うとクリップボードにはコピーした内容が保存されます。
そのコピーを行った内容のファイル名(できればstring型で)を取得する方法を教えていただけたらと思います。
文字列・保存されていない画像の場合にはファイル名は存在しないので、ファイル名の存在する画像やファイルについての方法をお願いします。

A 回答 (4件)

クリップボードのデータはファイルとは無関係なので、ファイル名はありません。



データをファイルに保存するのはアプリケーションプログラムの役割なので、
そのアプリケーションプログラムにファイル名を文字列としてクリップボードに転送する機能を実装するとか、
アプリケーションプログラムから直接ファイル名を得る方法を考えましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ファイル名は存在しないんですか。。
残念です。

また新たに質問したいのですが、クリップボードにはどのようなデータあるのですか?

お礼日時:2007/11/21 02:38

> クリップボードにはどのようなデータがあるのですか?


それは、あなたが最初の質問に書いておられるとおりです。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2007/11/26 23:16

はぁ、コードを見てわかりました。


isleさんのおっしゃるとおり、クリップボードにデータを入れる側のコードで特殊なことをしないかぎり、ファイル名が得られることはありえませんね。
その特殊なデータを解析する側も、けっこう面倒でしょう。
data transfer以外の、もっとふつうの方法で名前を通信したほうが、だんぜん楽でしょうね。
    • good
    • 0
この回答へのお礼

わかりました!
ありがとうございます。

isleさんにも質問したのですが、_ranco_さんも答えていただけたら幸いです。
クリップボードにはどのようなデータがあるのですか?
無知で申し訳ありません。

お礼日時:2007/11/21 02:41

なにをやりたいのか、小さなプログラム(ないし、プログラムの一部分)で示していただけませんか?

この回答への補足

読んでいただきありがとうございます。
以下が行いたいプログラムです。
クリップボードが文字列であればその文字列を出力し、それ以外なら「文字列ではありません」と出力するというものです。
その、文字列でない時にファイル名を取得して出力したいと考えています。

読みにくいと思いますが、よろしくお願いします。


import java.awt.*;
import java.awt.datatransfer.*;

public class Frame extends Component implements ClipboardOwner {
Clipboard clip = getToolkit().getSystemClipboard();
Transferable data;

public void read(){
data = clip.getContents(this);
if(data.isDataFlavorSupported(DataFlavor.stringFlavor)){
try{
System.out.println((String)data.getTransferData(DataFlavor.stringFlavor));
}
catch(Exception e) {}
}else{
System.out.println("<文字列ではありません>");
}
}

public void lostOwnership(Clipboard clipboard, Transferable contents) {
System.out.println("クリップボードが失われました");
}

public static void main(String[] args){
Frame fr = new Frame();
fr.read();
}
}

補足日時:2007/11/19 17:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!