Seph Geschrieben 3. November 2009 Geschrieben 3. November 2009 Hallo Leute, naja klingt wie eine leichte Aufgabe: Ich möchte ein vorhandenes Fenster einfach fokusieren. Und zwar ein offenes OpenOffice Writer-Dokument (und genau das ist die "Schwierigkeit" dabei). Ich habe derzeit leider keine Idee, wie ich dieses Fenster ansprechen und in den Vordergrund setzen kann. Ich weiß zwar wie ich das Fenster öffnen kann, aber nicht wie ich es in den Vordergrund setzen kann. Der Code mit dem das Fenster aufgeht: XComponentContext xCompCont = null; try { xCompCont = BootstrapSocketConnector.bootstrap("C:/Programme/OpenOffice.org 3/program/"); } catch(BootstrapException ex) { ex.printStackTrace(); } if(xCompCont != null) { try { // Servicemanager holen XMultiComponentFactory xMultiComFac = xCompCont.getServiceManager(); // Desktopinstanz erstellen Object xDesk = xMultiComFac.createInstanceWithContext( "com.sun.star.frame.Desktop", xCompCont); // neues Loader-Objekt mithilfe des Desktops erstellen XComponentLoader oComponentLoader = (XComponentLoader) UnoRuntime.queryInterface(XComponentLoader.class, xDesk); // ein leeres Writer-Dokument erstellen XComponent xComp = oComponentLoader.loadComponentFromURL( "private:factory/swriter", // neues Dokument "_blank", // neues Frame 0, // keine Suchflaggs new PropertyValue[0]); // mehr nicht return xComp; } catch(Exception ex) { System.out.println("Open Office Writer konnte nicht geöffnet werden!"); System.out.println(ex.getMessage()); } ByTheWay: in Java natürlich^^ MfG Seph Zitieren
Dragon8 Geschrieben 3. November 2009 Geschrieben 3. November 2009 Was passiert denn wenn du den von dir angegeben Code ausführst? Ich habe zwar jetzt noch nicht viel mit OpenOffice in Verbindung mit Java gearbeitet, aber bei meinen Tests, ging das Fenster sofort im Vordergrund auf, wenn ich das nicht explizit unterbunden habe. Dein Code sieht mir auch so aus, als wenn das dort eigentlich genauso geschehen sollte. Zitieren
Seph Geschrieben 3. November 2009 Autor Geschrieben 3. November 2009 Ich starte die Anwendung ja mittels eines Buttons innerhalb eines Javaprogramms. Und in diesem Fall bleibt (zumindest bei mir) mein ursprüngliches Javaprogramm im Vordergrund und das neue OpenOffice Dokument (Writer) öffnet sich zwar in der Leiste, bleibt aber minimiert. Warum soll das Ding eig. in den Vordergrund? Na ja, nicht unbedingt Vordergrund, ich möchte aber KeyEvents darauf abfeuern (mittels Robot) und damit der OpenOffice Writer weiß, dass die KeyEvents für ihn sind, muss er eben im Fokus sein. Gruß Seph Zitieren
Dragon8 Geschrieben 3. November 2009 Geschrieben 3. November 2009 Hm...also genau sagen wie das funktioniert, kann ich dir leider auch nicht, das Problem bestand bei mir nicht. Vielleicht dindest du ja aber im DevGuide wieder Hilfe dazu, vor allem die Sektion für das Application Enviroment sieht vielversprechend aus. Hab ich das jetzt aber richtig verstanden, dass du das Fenster in den Vordergrund bekommen willst, damit du über dein Programm OpenOffice Tastatureingaben einspeisen kannst? Wenn ja, wäre es vielleicht auch gleich sinvoller, zu schauen ob die Änderungen die du so vornehmen willst, nicht auch einfacher direkt über die API gelöst werden können. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.