我想将所见即所得的HTML编辑器添加到我的Java程序中。
我的想法是做一些像this 但不是用python - 用Java。带Java和And webkit的HTML编辑器 - SWT浏览器
我知道的一些选择,然后他们的问题:
- 一个HTMLEditorKit - 不够成熟。
- JWebpane - 童话故事。
- QtWebKit - 不是开源的。
- JWebEngine - 不是开源的。
- 中期选举人 - 简单。
- Lobo项目 - 不支持contenteditable属性。
- JavaXPCOM - 我不成功在我的Mac OS X 10.6上操作它。
无论如何,我只是不喜欢使用它,因为Gecko比webkit慢。
这是这样,我选择了从 org.eclipse.swt.browser包带 Browser Object工作。
现在,我的代码如下:
代码中,首先创建一个浏览器对象的实例。
之后,它会在body标签上加载带有contenteditable='true'
属性的HTML页面。
如果它加载一个页面,它应该将contenteditable='true'
属性添加到body标签,并且当它保存页面时,它应该删除它。
我的问题是:
- 如何抢编辑HTML代码?
- 我怎么知道光标在踩?
- 如何知道某些文字是否突出显示?
或一般:
- 如何建立与浏览器对象和ontenteditable = '真正的' 属性词养着?
- 有可能吗?
- 这是在Java中所见即所得的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 = "<html><title>Editor</title>"
+ "<body contenteditable='true'>"
+ " <h2>All the Page is ditable!!!!!</h2>"
+ "<p>Heres a typical paragraph element</p>"
+ "<ol><li>and now a list</li>"
+ "<li>with only</li>"
+ "<li>three items</li>"
+ "</ol></body></html>";
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();
}
}
谢谢夸奖 ,更感谢您的答复! 这似乎是学习c/C++的合适时机... 有了这些语言,它应该更适合这种事情...... – Arnon 2010-11-09 08:27:41