Hallo, wir haben die Option in unserer auf Eclipse-basierten Benutzeroberfläche JavaScript-Skripte abarbeiten zu lassen. Ich habe das Problem, dass wenn ich ein Dialogfenster mit Yes/No-Abfrage öffnen lasse, dass dieses Fenster sporadisch auch im Hintergrund auftaucht und vom Nutzer dann nicht gesehen wird. Gibt es eine Möglichkeit dafür zu sorgen, dass das Fenster in jedem Fall im Vordergrund erscheint, oder ist das eine Microsoft-Geschichte? Der verwendete Java-Script-Code lautet: var n = Packages.javax.swing.JOptionPane.showConfirmDialog(null, "Koennen Sie das Fenster sehen?", "Question", Packages.javax.swing.JOptionPane.YES_NO_OPTION);
danielS schrieb: > Der verwendete Java-Script-Code lautet: Das ist kein JS! danielS schrieb: > Gibt es eine > Möglichkeit dafür zu sorgen, dass das Fenster in jedem Fall im > Vordergrund erscheint, oder ist das eine Microsoft-Geschichte? Du kannst statt dem Einzeiler den Dialog explizit erstellen und konfigurieren, so ungefähr wie unter "Direct Use" hier: https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/package-summary.html Dort könntest du dann toFront() aufrufen. Da das eigentlich sowieso passieren sollte, tippe ich aber auf ein anderes Problem im Zusammenspiel mit irgendetwas anderem.
Wie das ist kein JS? :D Es funktioniert aber einwandfrei
danielS schrieb: > Wie das ist kein JS? :D Es funktioniert aber einwandfrei Ob etwas funktioniert oder nicht, sagt nichts darüber aus, ob es Javascript ist oder nicht. Vermutlich ist Dir nicht klar, dass "Java" und "Javascript" zwei völlig verschiedene Sprachen sind. Dein Beispiel ist "Java". - Eclipse ist in "Java" geschrieben. - "javax", "swing", "JOptionPane" sind alles "Java"-Elemente.
aber es funktioniert ganz offensichtlich in einer Datei mit Endung .js, in der auch sämtliche JavaSkript-Befehle durch Google-Recherche enthalten sind. Also unterstützt JavaSkript ja offensichtlich auch diese Notation, oder?^^
danielS schrieb: > Also unterstützt JavaSkript ja offensichtlich auch diese > Notation, oder?^^ Das ist keine Frage der Notation, denn syntaktisch sind sich die beiden sowieso ziemlich ähnlich. Es sind trotzdem zwei grundverschiedene Sprachen (Google, wenn es dir nicht klar ist ...) und Swing hat nun wirklich überhaupt nichts mit JS zu tun. Diese ganze Bibliothek gehört zu Java und funktioniert nur mit Java. "Offensichtlich" ist außerdem gar nichts. Ich sehe die ganz reale Möglichkeit, dass Eclipse den Dateinamen ignoriert, solange der Inhalt passt. Seit EASE unterstützt Eclipse nämlich auch JS, also macht es durchaus Sinn, hier etwas großzügiger zu sein, solange der Inhalt interpretierbar ist.
danielS schrieb: > Der verwendete Java-Script-Code lautet: > > var n = Packages.javax.swing.JOptionPane.showConfirmDialog(null, > "Koennen Sie das Fenster sehen?", "Question", > Packages.javax.swing.JOptionPane.YES_NO_OPTION); Eigentlich wollte ich damit anfangen, dass das Java ist - nicht Javascript. Allerdings ist mir dann das "var n = ..." aufgefallen. Sollte es tatsächlich noch jemanden auf diesem Planeten geben, der JS-Swing verwendet? Aber seis drum... Du verwendest <null> als parent (erster Parameter). Kann man machen. Aber wenn Du sicherstellen willst, dass der Dialog immer modal im Bezug auf ein bestimmtes Anwendungsfenster ist, muss dort ein parent angegeben werden. Siehe Doku. Wenn es sich allerdings wirklich um Javascript handelt und die Anwendung in einem Browser ausgeführt wird, dann wird es schon schwieriger. Der Browser dürfte die Steuerung des Dialogfensters stark einschränken. Ich würde daher empfehlen, mich nach Alternativen umzusehen. Im Web-Umfeld gibt es die ja zuhauf. Generell wäre es sicher eine gute Idee, JS-Swing auszubauen. Das war zu Zeiten des IE6 schon schlimm.
Driver schrieb: > Allerdings ist mir dann das "var n = ..." aufgefallen. var gibts für lokale Variablen seit Java 10.
Da gibts tatsächlich was für Javascript um Swingmässig unter JS GUI zu bauen, äh naja sehr rudimentär das Ganze: http://jsswing.sourceforge.net/
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.