java - Set Font Size of selected text in JEditorPane Using JComboBox -
how can set font size of selected text in jeditorpane (pane) using jcombobox?
previously used:
toolbar.add(new stylededitorkit.fontsizeaction("12", 12)); but cant have hundreds of buttons.
i don't know canonical way this, on experimentation, works:
import java.awt.borderlayout; import java.awt.dimension; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.action; import javax.swing.jcombobox; import javax.swing.jeditorpane; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.jscrollpane; import javax.swing.swingutilities; import javax.swing.text.badlocationexception; import javax.swing.text.defaultstyleddocument; import javax.swing.text.document; import javax.swing.text.styleddocument; import javax.swing.text.stylededitorkit; public class editorpanefun extends jpanel { private static final integer[] items = { 9, 10, 11, 12, 14, 16, 18, 20, 24, 32 }; private jeditorpane editorpane = new jeditorpane(); private jcombobox<integer> fontbox = new jcombobox<integer>(items); private styleddocument doc = new defaultstyleddocument(); private stylededitorkit stylededitorkit = new stylededitorkit(); public editorpanefun() { editorpane.setdocument(doc); editorpane.seteditorkit(stylededitorkit); jscrollpane scrollpane = new jscrollpane(editorpane); scrollpane.setpreferredsize(new dimension(500, 400)); jpanel combopanel = new jpanel(); combopanel.add(fontbox); setlayout(new borderlayout()); add(scrollpane, borderlayout.center); add(combopanel, borderlayout.south); document doc = editorpane.getdocument(); (int = 0; < 20; i++) { int offset = doc.getlength(); string str = "this line number: " + + "\n"; try { doc.insertstring(offset, str, null); } catch (badlocationexception e) { e.printstacktrace(); } } fontbox.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent e) { int size = (integer) fontbox.getselecteditem(); action fontaction = new stylededitorkit.fontsizeaction(string .valueof(size), size); fontaction.actionperformed(e); } }); } private static void createandshowgui() { jframe frame = new jframe("editorpanefun"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.getcontentpane().add(new editorpanefun()); frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); } public static void main(string[] args) { swingutilities.invokelater(new runnable() { public void run() { createandshowgui(); } }); } } note works if document defaultstyleddocument , if editorkit stylededitorkit.
Comments
Post a Comment