Arbeitsspeicher

Status
Nicht offen für weitere Antworten.

Robert2000

Mitglied
ich möchte in meinem Programm
per JButton einen Wert aus einem JTextfield in den Arbeitsspeicher kopieren.
Da ich in keinem Javabuch etwas Brauchbares fand, frage ich euch, ob einer
von euch das weis?

Gruß R2K
 
B

bygones

Gast
was willst du damit machen ?
wenn du einen String aus einem JTextfield ausliest und in eine Variable speicherst ist er automatisch im speicher...

wenn du nun von einem anderen (nicht java) programm das auslesen willst geht das so nicht
 
G

Guest

Gast
Ja genau das wollte ich. Der Wert soll im Windows Arbeitsspeicher sein nud von anderen Nicht Java Programmen lesbar sein (so wie strg+c). Hast du ne Ahnung wie das geht?
 
B

bygones

Gast
ich glaube man kann etwas ins Clipboard kopieren (oder wie das heißt) dass man den Text per strg+v irgendwo wieder rein tun kann (weiß aber nicht wo und wie).
Einfach so was in den speicher tun und dann wieder auslesen wird schwierig, wenn du nicht weißt wo es im speicher liegt...
 
G

Guest

Gast
ja genau das meint ich auch.
Trotzdem Danke für dein Bemühen :!:

Kann mir denn jemand anders helfen? :shock:
 

L-ectron-X

Gesperrter Benutzer
Es gibt in Java die Möglichkeit mit...
Code:
java.awt.datatransfer.Clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard();
...sich ein Clipboard-Objekt zu beschaffen, welches das System-Clipboard repräsentiert.
Die Daten, die man im ClipBoard ablegen möchte, müssen glaube ich das Transferable-Interface implementieren.
Ich weiß auch nicht, ob andere Nicht-Java-Programme dann darauf zugreifen können, weil die ja die Speicheradresse kennen müssen. ???:L
 

Nobody

Top Contributor
also allgmein kann man nicht in den arbeitsspeichern, das wird meines wissens nach auch garnicht ermöglicht, da daten von anderen programmen überschrieben werden können....
nagelt mich jetzt aber nich druff fest
 
G

Guest

Gast
Aha das ist doch schonmal was!
Das würde meiner Meinung aber eher der "Einfügen" funktion entsprechen.
Geht das kopieren evtl. mit setSystemClipBoard?
Aber trotzdem Danke!!!
 

L-ectron-X

Gesperrter Benutzer
Nee, ins Clipboard wird glaube ich mit der setContents()-Methode aus java.awt.datatransfer.Clipboard geschrieben.
Gelesen wird mit der getContents()-Methode.
 
G

Guest

Gast
Werde ich testen...
Jetzt weiß ich immerhin ungefähr wonach ich googlen muss.
Allerbesten Dank!

:D
 

Illuvatar

Top Contributor
Über diese Methode wird meines Wissens nach schon in die allgemeine Zwischenablage kopiert, d.h. Strg+C/V müsste funktionieren.

nobody hat gesagt.:
da daten von anderen programmen überschrieben werden können....
Ja und? (Wenn die eigenen Daten überschrieben werden, wird auch die Methode ClipboardOwner#lostOwnership aufgerufen)

Robert2000 hat gesagt.:
Da ich in keinem Javabuch etwas Brauchbares fand
http://www.javabuch.de Kapitel 30.7.2

Edit:mad:Gast Ist Gast der gleiche wie Robert2000?
 

bummerland

Top Contributor
Code:
public void kopieren(String s)
{
   try
   {
      Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
      StringSelection stringSelection = new StringSelection(s);
      cb.setContents(stringSelection, stringSelection);
   }
   catch(Exception exc){}
}   

public String getFromClipboard()
{
      Transferable cont = clip.getContents(this);
      if (cont == null)
      {
         System.out.println("Zwischenablage ist leer");
      }
      else
      {
         try
         {
            return (String) cont.getTransferData(DataFlavor.stringFlavor);
         }
         catch (Exception e)
         {
               System.out.println("Zwischenablage enthält keinen Text");
         }
      }
}
 

Robert2000

Mitglied
Gast = Robert2000
Ich wurde wegen Zeitüberschreitung ausgelogged. Ich hatte das dann zu spät bemerkt :?
Danke aber für eure Hilfe. Ich muß zwar noch ein bissl tüfteln, aber ich denke das der Tip von euch mir schon
viel weiter hilft!
 
S

stev.glasow

Gast
becstift hat gesagt.:
Code:
public String getFromClipboard()
{
      Transferable cont = clip.getContents(this);
      if (cont == null)
      {
         System.out.println("Zwischenablage ist leer");
      }
      else
      {
         try
         {
            return (String) cont.getTransferData(DataFlavor.stringFlavor);
         }
         catch (Exception e)
         {
               System.out.println("Zwischenablage enthält keinen Text");
         }
      }
}
@Robert: bitte nichts so übernehmen, denn das 'System.out.println' und 'catch (Exception e)' machen nämlich keinen Sinn und außerdem wird das nicht kompiliert, da eine Rückgabe nicht immer gewährleistet ist.
 

Robert2000

Mitglied
danke @stevg
Ich hatte auch schon bemerkt das da was doppelt ist. Und das compileren
klappte wirklich net. Außerdem ist das glaube ich eine Einfügen-Funktion. Trotzdem bin ich für jeden
Beitrag Dankbar ! ! !
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben