我想将WYSIWYG
HTML编辑器添加到我的
Java程序中.
我的想法是做像
this这样的事情
但不是用python – 用Java.
我知道几个选项及其问题:
> HTMLEditorKit – 不够复杂.
> JWebpane – 童话故事.
> QtWebKit – 不是开源的.
> JWebEngine – 不是开源的.
> metaphaseeditor – 简单.
> Lobo项目 – 不支持contenteditable属性.
> JavaXPCOM – 我不成功在我的Mac OS X 10.6上运行它.
无论如何,我只是不想使用它,因为Gecko比webkit慢.
这是我选择合作的方式
Browser Object来自org.eclipse.swt.browser包.
现在,我有以下代码:
代码,首先创建一个浏览器对象的实例.
在此之后,它会在body标签上加载带有contenteditable =’true’属性的HTML页面.
如果它加载一个页面,它应该为body标签添加contenteditable =’true’属性,当它保存页面时,它应该删除它.
我的问题是:
>如何获取已编辑的HTML代码?
>我如何知道光标是否踩到了?
>我如何知道某些文字是否突出显示?
或者,一般来说:
>
如何使用Browser Object和ontenteditable =’true’属性构建word拥有者?
>有可能吗?
>这是Java中WYSIWYG HTML编辑器的正确方法吗?
>那里有任何例子吗?
我已经检查过SWT Snippets – 没什么用.
非常感谢.
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class editor {
public static void main(String [] args) {
String html = "
Editor"+ "
"+ "
All the Page is ditable!!!!!
"+ "
Heres a typical paragraph element
"+ "
- and now a list"
+ "
with only"+ "
three items"+ "
";Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
final Browser browser;
try {
browser = new Browser(shell, SWT.BORDER);
}
catch (SWTError e) {
System.out.println(e.getMessage());
display.dispose();
return;
}
Composite comp = new Composite(shell, SWT.NONE);
comp.setLayout(new FillLayout(SWT.ALL));
browser.setText(html);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}