htmlPanel:oracle Forms的文本编辑器《完整示例见附件》
/**
*
* @author XIVA
*/
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.html.HTMLEditorKit;
import oracle.forms.handler.IHandler;
import oracle.forms.ui.*;
import oracle.forms.properties.ID;
/**
* HTML Styled JTextPane
*
* @author XIVA
* @version 1.6
*/
public class HtmlPanel extends VBean
{
protected static final ID pSetText = ID.registerProperty("SET_TEXT");
protected static final ID pSetEdit = ID.registerProperty("SET_EDIT");
protected static final ID pGetText = ID.registerProperty("GET_TEXT");
protected static final ID pLostFocus = ID.registerProperty("BEAN_QUITTED");
protected JTextPane m_editor;
protected HTMLEditorKit m_kit;
@Override
public void init(IHandler handler)
{
super.init(handler);
}
/**
* Constructor
*/
public HtmlPanel()
{
super();
// new JTextpane
m_editor = new JTextPane();
m_kit = new HTMLEditorKit();
m_editor.setEditorKit(m_kit);
JScrollPane ps = new JScrollPane(m_editor);
add(ps);
ps.setVisible(true);
}
/******************************************
* Get the text content to return to Forms
******************************************/
@Override
public Object getProperty(ID pId)
{
if (pId == pGetText)
{
return "" + m_editor.getText();
}
else
{
return super.getProperty(pId);
}
}
/**********************************
* Set the text content from Forms
**********************************/
@Override
public boolean setProperty(ID pId, Object pValue)
{
if (pId == pSetText) // set the user value
{
String s = (String)pValue ;
m_editor.setText(s);
return true;
}
if (pId == pSetEdit) // set the edit flag
{
String s = (String)pValue ;
if(s.equalsIgnoreCase("true")) m_editor.setEditable(true);
else m_editor.setEditable(false);
return true;
}
else
{
return super.setProperty(pId, pValue);
}
}
} // HtmlPane
主要扩展类VBean。
开发时,需要使用到下面的jar包。改包位于:D:\Oracle\Middleware\Oracle_FRHome1\forms\java
在forms中使用这个类时,需要将其打包为jar包,然后拷贝到D:\Oracle\Middleware\Oracle_FRHome1\forms\java路径下,然后在formsweb.cfg中更改:archive=frmall.jar,htmlpane.jar
formsweb.cfg文件的路径如下:
D:\Oracle\Middleware\user_projects\domains\ClassicDomain\config\fmwconfig\servers\AdminServer\
applications\formsapp_11.1.2\config
最好将路径D:\Oracle\Middleware\Oracle_FRHome1\forms\java,添加到path变量中,这样就可以使用这个类了,却不报找不到该类的警告。