Spanish [Solucionado] B4J B4XPages Full Screen

roerGarcia

Member
Licensed User
Buenos dias, tardes, noches, segun corresponda.

Antes de B4XPages probe crear una aplicacion desktop en modo full screen, habia varias formas de lograr esto, con fx.screen y sus propiedades, con JAVAOBJECT y fijando la forma como maximizada, etc.

Ahora probe uno de esos codigos con B4XPages y salta un error.

Alguien ha probado a crear una app asi? desktop, b4j, b4xpages, full screen?

TIA
 

oparra

Well-Known Member
Licensed User
Es lo que buscas ??
use;
B4XPages.GetNativeParent

Private fx As JFX
B4X:
    B4XPages.GetNativeParent(Me).WindowWidth = fx.PrimaryScreen.MaxX - fx.PrimaryScreen.MinX
    B4XPages.GetNativeParent(Me).WindowLeft = fx.PrimaryScreen.MinX
    B4XPages.GetNativeParent(Me).WindowHeight = fx.PrimaryScreen.MaxY - fx.PrimaryScreen.MinY
    B4XPages.GetNativeParent(Me).WindowTop = fx.PrimaryScreen.MinY
 

oparra

Well-Known Member
Licensed User
JavaObject;

Dim Stage As JavaObject = B4XPages.GetNativeParent(Me)
Stage = Stage.GetField("stage")
' Stage.RunMethod("centerOnScreen",Null)
' Stage.RunMethod("setFullScreen",Array As Object(True))
Stage.RunMethod("setMaximized", Array As Object(True))
 
Last edited:

oparra

Well-Known Member
Licensed User
Revisa este Utilitario si lo haces en JavaObject:

 

roerGarcia

Member
Licensed User
Un par de detalles.

1. el get native parent retorna un Form. A este se le puede aplicar el fx - dimensiones. Perfecto. Esto funciona. Pero hay un pequeño margen de un par de pixeles no ocupados de la pantalla por la forma de la aplicacion. Solo es una duda existencial.

2. Tambien recuerdo haber retirado los controles de minimizar, maximizar y cerrar del extremo superior derecho con un setformstyle UNDECORATED; aplicar esto mismo al get native arroja este error.

B4X:
Waiting for debugger to connect...
Program started.
Ha ocurrido un error en la línea: 276 (B4XPagesManager)
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
...
Caused by: java.lang.IllegalStateException: Cannot set style once stage has been set visible
    at javafx.graphics/javafx.stage.Stage.initStyle(Stage.java:484)
    at anywheresoftware.b4j.objects.Form.SetFormStyle(Form.java:279)
    at b4j.example.b4xmainpage._b4xpage_created(b4xmainpage.java:80)
y basicamente esto se corrige usando set form style desde

B4X:
Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
 [B]   MainForm.SetFormStyle("UNDECORATED")[/B]
    MainForm.Show
Ahora nada mas falta agregar los controles de un modo diferente al habitual.

Hasta aqui mi reporte.
Gracias por el apoyo.
 

roerGarcia

Member
Licensed User
Si, OParra, llegamos a la misma situacion ambos dos a la vez. =)

Solo me falto decir antes el deseo de UNDECORAR la forma.

Gracias!
 

oparra

Well-Known Member
Licensed User
Algo para que tengas presente, ya que para entender mejor este método B4XPages (Clasess).

What is a B4XPage?

It differs between the three platforms:
B4J - Form
B4i - Page in a single NavBarController
B4A - Panel in a single activity.
ver:

Saludos,
 
Top