ADVERTENCIA: Lo que voy a comentar en esta entrada utiliza funciones no documentadas de Forms. Funciona con la versión actual 12.2.1.4.0, pero no puedo ofrecer ninguna garantía de que en futuras versiones funcione o lo haga de esta forma.
Oracle Forms utiliza Java para ejecutarse en el cliente y proporciona herramientas para poder integrar componentes Java personalizados (Bean Area), precisamente estos componentes son los que voy a mostrar como a través de ellos alterar el comportamiento nativo de Forms.
Lo primero es conocer que el tipo de layout Java que usa Forms.
BorderLayout: https://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html
Donde:
- North: Menú superior y botonera horizontal.
- West: Botonera vertical.
- South: Barra de estado.
- Center: Ventana del programa Forms.
import java.awt.Dimension;
import javax.swing.JLabel;
import oracle.forms.handler.IHandler;
import oracle.forms.ui.VBean;
transient IHandler handler = null;
private java.awt.Frame frame = null;
public void init(IHandler handler) {
super.init(handler);
this.handler = handler;
this.frame = this.handler.getApplet().getFrame();
JLabel eastLabel = new JLabel("EAST", JLabel.CENTER);
eastLabel.setOpaque(true);
eastLabel.setBackground(Color.YELLOW);
eastLabel.setPreferredSize(new Dimension(190,768));
this.frame.add("East", eastLabel);
frame.validate();
}
}
Con handler.getApplet().getFrame() hacemos referencia al frame con el BorderLayout y luego con frame.add("East", xxxx); añadimos el componente.
Resultado:
Video ejemplo: