SWT Browser-Widget und Zwischenablage bzw. Strg+C

Status
Nicht offen für weitere Antworten.

Peterchen

Mitglied
Hallo,

ich nutze das Browser-Widget für die Darstellung von HTML in meiner Anwendung. Ich würde dem Nutzer jetzt gerne eine Knopf in der Anwendung zur Verfügung stellen, der erst den gesamten Text im Widget selektiert und dann Strg+C auslöst, um ihm die Arbeit ein wenig zu erleichtern. Hat jemand eine Idee, wie ich das anstellen kann? Ich komme nicht so richtig weiter...

Danke
 

Peterchen

Mitglied
Ja, die kenne ich. Allerdings möchte ich genau das gleiche Verhalten haben wie wenn ich in dem Widget Strg+C drücke (es erfolgen ca. 15 Einträge in die Zwischenablage), damit andere Programme, die die Zwischenablage auslesen gleich wissen "woran sie sind". Und ich habe bis jetzt noch keine Möglichkeit gefunden das Verhalten nachzustellen. Da kam mir einfach die Idee den Tastendruck zu simulieren.
Aber wenn du eine Idee hast, wie ich das Verhalten nachstellen bzw. Auslösen kann, was das Browse-Widget macht, habe ich auch nichts dagegen.
 

Peterchen

Mitglied
Habe eben noch etwas anderes ausprobiert
Java:
org.eclipse.swt.dnd.Clipboard clipboard = new org.eclipse.swt.dnd.Clipboard( vDisplay );
clipboard.setContents( new Object[] { "<b>Test</b>" }, new org.eclipse.swt.dnd.Transfer[] { HTMLTransfer.getInstance() } );
Allerdings bliebt hier die Zwischenablage "leer" bzw. ich kann nirgends etwas aus der Zwischenablage einfügen (in der Zwischenablage steht eigentlich jede Menge) (siehe Beispiel unter SWT Clipboard Example : ClipboardSWT JFace EclipseJava, aber auch hier habe ich Probleme mit dem einfügen in anderen Anwendungen).
 
Zuletzt bearbeitet:

Peterchen

Mitglied
Ich habe jetzt noch diverse Varianten ausprobiert, aber ohne richtigen Erfolg.
  1. Variante: Tastenklick simulieren
    1. Fokus setzen auf das Browser-Widget (
      Code:
      browser.setFocus()
      )
    2. Über java.awt.Robot Tastendruck Strg+A und Strg+C auslösen

    -> Funktioniert nur, wenn man einmal mit der Maus auf das Browser-Widget geklickt hat. Dannach funktionert es dann immer, auch wenn man den Cursor in andere Eingabefelder setzt. Das Verhalten kann ich mir nicht erklären.

  2. Variante: Tastaturevent selber auslösen
    1. Entsprechende Events erzeugen und verteilen
      Java:
      // Strg+A
      Event keyEvent = new Event();
      keyEvent.widget = browser;
      keyEvent.type = SWT.KeyDown;
      keyEvent.keyCode = 262144;
      keyEvent.character = (char)(0);
      keyEvent.stateMask = 0;
      browser.notifyListeners( SWT.KeyDown,  keyEvent );
      ...
    -> Das funktioniert im Prinzip, allerdings landet nicht der Inhalt des Browsers in der Zwischenablage, sondern der Inhalt eines anderen [c]StyledText[/c]. Auch das kann ich mir nicht erklären, da ich das [c]notifyListeners()[/c] ja direkt auf dem Browser-Widget aufrufe

  3. Variante: Nutzung von AWT/Swing
    1. Über [c]SWT_AWT.new_Frame()[/c] letztendlich ein [c]JEditorPane[/c] für die Darstellung des HTML "einbinden"
    2. Aufruf von [c]copy()[/c] auf dem [c]JEditorPane[/c]

    -> Meiner Meinung nach die eleganteste Variante mit dem Haken, dass das Tool, in dem ich die Zwischenablage einfügen möchte, dies nicht als HTML erkennt und nichts einfügt (bei Word klappt es zum Beispiel).
Vielleicht hat ja noch jemand ein paar clevere Ideen zu diesem Problem. Ich habe auch schon im Browser-Widget gesucht, ob ich dort einen Aufruf a la [c]copy()[/c] wie im [c]JEditorPane[/c] finde bzw. die Codestelle, die das kopieren letztendlich durchführt, um diesen Teil selber eplizit aufrufen zu können. Allerdings bin ich bis jetzt nicht fündig geworden :-(
 
Zuletzt bearbeitet:

Peterchen

Mitglied
Das Problem der ersten Variante lässt sich damit lösen, dass man zuvor noch [c]getAccessible()[/c] auf dem Browser-Widget aufruft.
Dennoch wäre ich am meisten an der 2. oder 3. Variante interessiert. Bei der zweiten muss es doch möglich sein Tastaturevents an dieses Browser-Widget zu schicken, die dann auch von diesem verarbeitet werden und nicht von einem anderen, wenn überhaupt was daraufhin passiert.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H RCP(SWT) Browser-Widget zeigt keine locale HTML-Dateien an AWT, Swing, JavaFX & SWT 1
S SWT Anzeigen einer lokalen HTML-Seite im Browser Widget über RAP nicht möglich AWT, Swing, JavaFX & SWT 3
M Gluon will JavaFX in den Browser stecken AWT, Swing, JavaFX & SWT 0
M DragAndDrop - aus Browser ins Programm AWT, Swing, JavaFX & SWT 6
A Ein browser Fenter prametrisiert öffnen AWT, Swing, JavaFX & SWT 15
K javafx app > "run in browser" funktioniert nicht AWT, Swing, JavaFX & SWT 3
llabusch JavaFX Dynamisch alles vergrößern (wie im Browser) AWT, Swing, JavaFX & SWT 3
P JavaFX Project im Browser öffnen AWT, Swing, JavaFX & SWT 4
C Applet Applet funktioniert in Eclipse aber nicht in Browser AWT, Swing, JavaFX & SWT 1
V Swing Swing im Browser: ServerSideSwing AWT, Swing, JavaFX & SWT 3
H swt browser disable navigation AWT, Swing, JavaFX & SWT 4
VfL_Freak AWT Browser öffnen und schließen via java.awt.Desktop AWT, Swing, JavaFX & SWT 4
achillesat SWT Browser öffnen durch Button click AWT, Swing, JavaFX & SWT 5
M SWT Browser nur eine Seite erlauben AWT, Swing, JavaFX & SWT 3
P JApplet verhält sich im Browser anders als im Eclipse (AppletViewer) AWT, Swing, JavaFX & SWT 3
P JApplet Browser Tab Öffnen AWT, Swing, JavaFX & SWT 5
C html browser in Application nutzen AWT, Swing, JavaFX & SWT 10
H Browser in Swing AWT, Swing, JavaFX & SWT 6
K JTable im Browser nicht zu sehen - Applet AWT, Swing, JavaFX & SWT 6
F Browser drawString AWT, Swing, JavaFX & SWT 4
M Browser in Programm einbinden AWT, Swing, JavaFX & SWT 4
Z Component für File-Browser ähnliche Oberfläche AWT, Swing, JavaFX & SWT 6
V Applet .JAR in Browser einbinden AWT, Swing, JavaFX & SWT 2
C Swing Verlinken auf externe Prozesse bsp. Mailprogramm, Inet. Browser AWT, Swing, JavaFX & SWT 6
H Applet JApplet soll neues Tab im Browser öffnen AWT, Swing, JavaFX & SWT 2
H Applet - Hilfedateien im Browser öffnen / eine Webseite laden AWT, Swing, JavaFX & SWT 6
D JApplet hängt im Browser fest AWT, Swing, JavaFX & SWT 5
algorismi Browser Komponente AWT, Swing, JavaFX & SWT 3
F Java Browser für 1.6 AWT, Swing, JavaFX & SWT 2
J Jigloo browser tutorial - Anleitung unklar AWT, Swing, JavaFX & SWT 4
C SWT SWT Browser anzeige bug AWT, Swing, JavaFX & SWT 3
R JApplet - Infos ueber Browser moeglich? AWT, Swing, JavaFX & SWT 5
B SWT Browser mit Proxy? AWT, Swing, JavaFX & SWT 2
T [Applet] startet in Eclipse aber nicht im Browser AWT, Swing, JavaFX & SWT 2
S Browser ohne Header öffnen AWT, Swing, JavaFX & SWT 3
I SWT Browser in Swing AWT, Swing, JavaFX & SWT 26
G Datei-Browser - Wie solche Ansicht erzeugen? AWT, Swing, JavaFX & SWT 3
M Browser in Swing App einbinden AWT, Swing, JavaFX & SWT 2
U RCP und browser unabhängigkeit AWT, Swing, JavaFX & SWT 7
B Alle URLs aller offenen Browser. AWT, Swing, JavaFX & SWT 12
D Browser -> Hintergrundfarbe AWT, Swing, JavaFX & SWT 11
D JDIC Browser in SWT/JFace Anwendung nutzen AWT, Swing, JavaFX & SWT 2
I SWT - Browser.setUrl(url) geht nicht :-( AWT, Swing, JavaFX & SWT 6
M JRE-Version für Browser-Plugin wählen AWT, Swing, JavaFX & SWT 2
J Java-Eingabefeld wie in einem Browser AWT, Swing, JavaFX & SWT 8
K Datei Browser - HTML - JSP ? AWT, Swing, JavaFX & SWT 9
N Browser - Button erstellen AWT, Swing, JavaFX & SWT 2
B Datei Browser integriert in eine GUI AWT, Swing, JavaFX & SWT 5
P Default Link in Swing, --> öffne Browser -> Browse URL AWT, Swing, JavaFX & SWT 8
C SWT - widget dynamisch erzeugen und anzeigen AWT, Swing, JavaFX & SWT 10
Madlip SWT DateTime Widget Schließen AWT, Swing, JavaFX & SWT 4
S Nebula Widget CollapsibleButton AWT, Swing, JavaFX & SWT 2
C [SWT] Widget Table verliert nach Sortierung farbige / eingefärbter Background / Zellen AWT, Swing, JavaFX & SWT 3
T SWT Widget AWT, Swing, JavaFX & SWT 5
S SWT Wie bei Widget Text auf int prüfen bei Eingabe AWT, Swing, JavaFX & SWT 5
H SWT Uhr Widget AWT, Swing, JavaFX & SWT 2
W SWT DateTime Widget Local ändern AWT, Swing, JavaFX & SWT 7
J Applikation als Desktop-"Widget" AWT, Swing, JavaFX & SWT 2
R setEnabled bei eigenem Widget implementieren? AWT, Swing, JavaFX & SWT 3
DeeDee0815 SWT Text Widget: Zwischen Single und Password umschalten AWT, Swing, JavaFX & SWT 3
G Widget Netzwerk einbauen AWT, Swing, JavaFX & SWT 7
D Widget/Control während Laufzeit durch ein anderes ersetzen AWT, Swing, JavaFX & SWT 3
N [Suche] JTree Widget/Library. AWT, Swing, JavaFX & SWT 2
S AWT Komponenten in einem SWT Widget AWT, Swing, JavaFX & SWT 6
C JFrame ohne Minimize/Maximize-Widget AWT, Swing, JavaFX & SWT 7
TheWhiteShadow Binärdaten aus Zwischenablage AWT, Swing, JavaFX & SWT 7
Daniel_L jEditorPane - Formatierten Text in Zwischenablage kopieren? AWT, Swing, JavaFX & SWT 2
S JList und die Zwischenablage. AWT, Swing, JavaFX & SWT 3
G Zwischenablage abfangen AWT, Swing, JavaFX & SWT 4
B Durch Auslesen der Zwischenablage folgt Fehler im Excel AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben