JAVA BEAN AREA
vegetaMay 14 2007 — edited May 15 2007Hi
I hope someone can help me!!
I have this java code:
package oracle.forms.rhlv;
import jcw.SHDocVw.*;
import oracle.forms.ui.*;
import oracle.forms.engine.Main;
import javax.swing.*;
import java.awt.*;
public class ExplorerBean extends JFrame implements com.inzoom.axjni.event.AxEventListener
, java.awt.event.ActionListener
{
final static String
cstrAppTitle="WebBrowser in a Swing Frame"
, cstrHomeButtonName="Home"
, cstrNGButtonName="Newsgroup"
, cstrEventOrigin="navigateComplete events here"
, cstrURLHome="http://portaldca.dca.pemex.com/sites/oag/Lists/Preguntas%20Frecuentes%20Sistemas%20OAG/AllItems.aspx"
, cstrURLNG="http://groups.yahoo.com/group/jacozoom/"
;
private oracle.forms.ui.ExtendedFrame ef ;
public ExplorerBean()
{
/* javax.swing.JFrame frm = new javax.swing.JFrame(cstrAppTitle);
frm.setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE );
javax.swing.JPanel panelSouth = new javax.swing.JPanel();
m_lblStatus = new javax.swing.JLabel(cstrEventOrigin);
panelSouth.add(m_lblStatus);
m_jax = new com.inzoom.axjni.JActiveX("Shell.Explorer.1");
m_jax.addAxEventListener(this);
frm.getContentPane().add(m_jax,java.awt.BorderLayout.CENTER );
frm.getContentPane().add(panelSouth,java.awt.BorderLayout.SOUTH);
frm.setSize(640,480);
frm.setVisible(true);// show the frame */
javax.swing.JPanel frm = new javax.swing.JPanel();
m_jax = new com.inzoom.axjni.JActiveX("Shell.Explorer.1");
m_jax.addAxEventListener(this);
frm.setLayout(new BorderLayout(640,480));
frm.add(m_jax, BorderLayout.CENTER);
setContentPane(frm);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(640,480);
setVisible(true);
}
//createButton
javax.swing.JButton createButton(String name,char mnemonic)
{
javax.swing.JButton btn = new javax.swing.JButton(name);
btn.setMnemonic(mnemonic);
btn.addActionListener(this);
return btn;
}
// com.inzoom.axjni.event.AxEventListener implementation
public void init(com.inzoom.axjni.event.AxEvent evt)
{
try
{
m_wb = WebBrowser.getWebBrowserFromUnknown(m_jax.getUnknown());
m_wb.navigate(cstrURLHome);
m_EventAdapter= new WebEventAdapter();
m_wb.addDWebBrowserEvents2Listener(m_EventAdapter);
}
catch(Exception ex)
{
if(m_lblStatus==null)
ex.printStackTrace();
else
m_lblStatus.setText(ex.toString());
}
}
public void done(com.inzoom.axjni.event.AxEvent evt)
{
try{ close(); }
catch(Exception ex)
{ ex.printStackTrace(); }
System.gc(); // only for memory leaks checking in debug mode
System.out.println("Done");
}
// java.awt.event.ActionListener
public void actionPerformed(java.awt.event.ActionEvent evt)
{
String strURL=null;
Object oBtn=evt.getSource();
if(oBtn instanceof javax.swing.JButton)
{
String strLabel = ((javax.swing.JButton)oBtn).getText();
if (strLabel.compareTo(cstrHomeButtonName)==0)
strURL=cstrURLHome;
else if (strLabel.compareTo(cstrNGButtonName)==0)
strURL=cstrURLNG;
}
if(strURL!=null)
doNavigate(strURL);
}
void doNavigate(String strURL)
{
if(m_wb==null) return ; // assert(true); can't navigate this time
try
{ m_wb.navigate(strURL); }
catch(Exception ex)
{
if(m_lblStatus==null)
ex.printStackTrace();
else
m_lblStatus.setText(ex.toString());
}
}
// my cleanup
void close() throws com.inzoom.comjni.ComJniException
{
if(m_wb!=null)
{
if( m_EventAdapter!=null)
{
m_wb.removeDWebBrowserEvents2Listener(m_EventAdapter);
m_EventAdapter=null;
}
m_wb.release();
m_wb=null;
}
if(m_jax!=null)
{
m_jax.release();
m_jax = null;
}
}
// main entry point
public static void main(String[] args)
{ ExplorerBean jWeb = new ExplorerBean(); }
class WebEventAdapter extends DWebBrowserEvents2Adapter
{
public void navigateComplete2(com.inzoom.comjni.IDispatch pDisp,com.inzoom.comjni.Variant[] URL)
{
System.out.println("navigateComplete2 " + URL[0]);
m_lblStatus.setText(URL[0].toString ());
}
}
// members
private com.inzoom.axjni.JActiveX m_jax;
private javax.swing.JLabel m_lblStatus;
private WebEventAdapter m_EventAdapter;
private WebBrowser m_wb;
}
Currently when I open the form at runtime the bean pops up as a separate 'window' and the form has an empty bean area. It works OK, but could some one tell me how to put inside the form's bean area and not let it float around
thanks in advance