Je veux ajouter l'éditeur HTML WYSIWYG à mon programme Java.
mon idée est de faire quelque chose comme this mais pas avec python - avec Java.Éditeur HTML avec Java et Et webkit - Navigateur SWT
Je sais que sur les deux options et leurs problèmes:
- HTMLEditorKit - pas assez sophistiqués.
- JWebpane - conte de fées.
- QtWebKit - source non ouverte.
- JWebEngine - source non ouverte.
- métaphaseeditor - à simple.
- Le projet Lobo - ne prend pas en charge l'attribut contenteditable.
- JavaXPCOM - Je ne réussis pas à l'utiliser sur mon Mac OS X 10.6.
De toute façon, je préfère ne pas l'utiliser car Gecko est plus lent que webkit.
C'est ainsi que j'ai choisi de travailler avec Browser Object de org.eclipse.swt.browser Package.
Pour l'instant, j'ai le code ci-dessous:
Le code, d'abord créer une instance de l'objet du navigateur.
Après cela, il charge la page HTML avec les attributs contenteditable='true'
sur l'étiquette du corps.
Si son charger une page est censé ajouter des attributs contenteditable='true'
à l'étiquette du corps, et quand c'est enregistrer la page, il est supposé le supprimer.
Mes questions sont les suivantes:
- Comment puis-je attraper le code HTML édité?
- Comment savoir si le curseur est activé?
- Comment savoir si du texte est en surbrillance?
Ou, en général:
- Comment puis-je construire un possesseur de mot avec le navigateur d'objets et ontenteditable = 'true' attributs?
- est-ce possible?
- est-ce la bonne façon pour l'éditeur HTML WYSIWYG en Java?
- Des exemples là-bas? Je vérifie déjà le SWT Snippets - ne aide pas beaucoup.
Merci beaucoup.
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();
}
}
Merci pour le compliment et encore plus merci pour la réponse !!! Il semble que le bon moment pour apprendre c/C++ ... Avec ces langues, il devrait être beaucoup plus approprié pour de telles choses ... – Arnon