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

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c++ - Using OpenSSL in a multi-threaded application -

All overlapping substrings matching a java regex -