Frage von Rarrr, 55

Wie kann ich die Zwischenablage auslesen?

Hi,

ich hab folgendes Problem:

Ich hab von einer Website mit einem Programm (siehe unten) einen String kopiert (z.B "mager"). Das Programm setzt den Cursor an eine bestimmte Stelle, drückt dann Strg+C und kopiert somit den Text an dieser Stelle.

Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    Transferable transferData = systemClipboard.getContents( null );
    for ( DataFlavor dataFlavor : transferData.getTransferDataFlavors() ){
    Object content = transferData.getTransferData( dataFlavor );
    if ( content instanceof String ){
       //System.out.println(content);
       zwischenablage = (String) content;
    break;}}

Wenn ich diesen jetzt ausgeben lasse, dann erscheint in der Konsole nicht nur das Wort "mager", sondern folgendes:

Version:0.9 StartHTML:0000000172 EndHTML:0000000694 StartFragment:0000000208 EndFragment:0000000658 SourceURL:http://www.howrse.de/elevage/chevaux/cheval?id=40493256 mager

Das Wort "mager" ist zwar enthalten, aber wie stelle ich das an, dass nur das Wort mager ausgegeben wird? Wenn man allerdings Strg+V drückt, dann wird nur das Wort "mager" ausgegeben, wenn ich den Text ausgeben lasse in der Konsole kommt alles...

Lg Johannes

Antwort
von rmnstr, 38

.getData() von Clipboard statt .getContents() mit dem DataFlavor für Strings.

String data = (String) Toolkit.getDefaultToolkit()
.getSystemClipboard()
.getData(DataFlavor.stringFlavor);
Antwort
von PerfectMuffin, 30

Ich würde jetzt ohne Rechersche auf falsches DataFlavor tippen.

Kommentar von Rarrr ,

wie kann man das dann ändern? - ich bin nicht unbedingt der beste programmierer, und hab grade von der zwischenablage nicht wirklich ahnung...

Kommentar von PerfectMuffin ,

Du willst einen plaintext String. Du verwendest aber alle Flavors bis du etwas hast, was wie ein String aussieht, möglicherweise eine Formatierungsbeschreibung.

Lies die APIdocs. Es gibt ein Flavor extra für plaintext Strings.

Keine passende Antwort gefunden?

Fragen Sie die Community