Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

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

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.