Nu er der bare lige det problem at bold action har fejl. Prøv at kigge på
den HTML kode der kommer retur, efter at have brugt bold action til at
fjerne bold med... rigtigt gættet det virker ikke.
Medsendte kode stump er en del af MyHTMLEditorKit som arver fra
HTMLEditorKit. Koden stammer fra en work-a-round SUN selv foreslår, men som
heller ikke holder vand. Hvis du vil have hele "MyHTMLEditorKit", kan du
bare sende mig en mail.
Beklager hvis koden er lidt rusten, den er i sin tid kastet sammen, og jeg
havde travlt.
--
public static class MyBoldAction extends StyledTextAction {
/**
* Constructs a new BoldAction.
*/
public MyBoldAction() {
super("bold");
}
/**
* Toggles the bold attribute.
*
* @param e the action event
*/
public void actionPerformed(ActionEvent e) {
JEditorPane editor = getEditor(e);
if (editor != null) {
HTMLDocument doc = (HTMLDocument) editor.getDocument();
MyHTMLEditorKit kit = (MyHTMLEditorKit)
editor.getEditorKit();
boolean bold = false;
AttributeSet attr = null;
SimpleAttributeSet sas = new SimpleAttributeSet();
// Make sure elements are created if needed
setCharacterAttributes(editor,sas,false);
int p0 = editor.getSelectionStart();
int p1 = editor.getSelectionEnd();
int length = p1 - p0;
int endOffset = Integer.MAX_VALUE;
// Iterate over the selection and modify the bold attribute
// of each element
for (int pos = p0; pos < (p0 + length); pos = endOffset) {
Element element = doc.getCharacterElement(pos);
endOffset = element.getEndOffset();
attr = element.getAttributes();
bold = (StyleConstants.isBold(attr)) ? false : true;
sas = new SimpleAttributeSet();
sas.addAttributes(attr);
StyleConstants.setBold(sas, bold);
if (!bold) { // remove bold
sas.removeAttribute(HTML.Tag.B);
sas.removeAttribute(CSS.Attribute.FONT_WEIGHT);
}
doc.setCharacterAttributes(element.getStartOffset(),
element.getEndOffset()-
element.getStartOffset(),
sas,
true);
}
// Set the focus back to the editor
editor.requestFocus();
}
}
}
--
Theo Stidsen
Cancer Research Project - Team Denmark Against Cancer
http://213.237.41.12/DU/index.html
"Martin Mouritzen" <martin@fez.dk> wrote in message
news:9eihp9$sho$1@news.cybercity.dk...
> After I finished the 3 Pan Galactic Gargle Blasters, Runi Thomsen
> <runi@wol.dk> just offered me, he muttered some weird stuff, and I had
> to correct this gibberish:
>
> >Problemet er at jeg vil kunne markere noget text, trykke på en knap, og
> >vupti - texten bliver bold,
> >altså noget med
>
> Prøv evt. at bruge actions, der findes allerede en
> bold/italic/underline/whatever action, og den laver også fint HTML'en
> for dig.
>
> >jEditorPaneEtEllerAndet.replaceSelection(HTML.Tag.b, "bla bla");
>
> Du kan evt. bruge insertHTML metoden i HTMLEditorKit klassen, jeg må
> dog indrømme jeg ikke lige har haft de bedste erfaringer med den (Jeg
> kæmper rent faktisk med den i øjeblikket).
> --
> Martin Mouritzen. |
http://www.trendy.dk
> The truth is out there! Does anyone know the URL?