java - How to highlight all the text in a JTextPane? -
jtextpane1.selectall(); with correctly shared events, command permit highlight text in jtextpane area (i bit rusty, need not forget share "good event focus priorities" ; thank : madprogrammer)
since selectall method of jtextcomponent, jtextpane extends take wild guess , say, probably, yes.
five minutes of coding have gotten same answer yourself...
highlighting not seem appear in jtextpane area (note : use java 7)
this because jtextpane doesn't have focus, try using requestfocusinwindow bring keyboard focus jtextpane.
the jtextcomponents don't render selection highlighting when don't have focus.
for example...
import java.awt.borderlayout; import java.awt.eventqueue; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.jscrollpane; import javax.swing.jtextpane; import javax.swing.uimanager; import javax.swing.unsupportedlookandfeelexception; public class testtextpane { public static void main(string[] args) { new testtextpane(); } public testtextpane() { eventqueue.invokelater(new runnable() { @override public void run() { try { uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname()); } catch (classnotfoundexception | instantiationexception | illegalaccessexception | unsupportedlookandfeelexception ex) { } final jtextpane tp = new jtextpane(); jbutton withfocus = new jbutton("select focus"); withfocus.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent e) { tp.selectall(); tp.requestfocus(); } }); jbutton withoutfocus = new jbutton("select without focus"); withfocus.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent e) { tp.selectall(); } }); jframe frame = new jframe("testing"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setlayout(new borderlayout()); frame.add(new jscrollpane(tp)); jpanel panel = new jpanel(); panel.add(withfocus); panel.add(withoutfocus); frame.add(panel, borderlayout.south); frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); } }); } } you test using
textpane.selectall(); system.out.println(textpane.getselectedtext()); for example...
and double clicking
import java.awt.borderlayout; import java.awt.eventqueue; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.jscrollpane; import javax.swing.jtextpane; import javax.swing.swingutilities; import javax.swing.uimanager; import javax.swing.unsupportedlookandfeelexception; public class testtextpane { public static void main(string[] args) { new testtextpane(); } public testtextpane() { eventqueue.invokelater(new runnable() { @override public void run() { try { uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname()); } catch (classnotfoundexception | instantiationexception | illegalaccessexception | unsupportedlookandfeelexception ex) { } final jtextpane tp = new jtextpane(); jbutton withfocus = new jbutton("select focus"); tp.addmouselistener(new mouseadapter() { @override public void mouseclicked(mouseevent e) { if (e.getclickcount() == 2 && swingutilities.isleftmousebutton(e)) { tp.selectall(); } } }); jframe frame = new jframe("testing"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setlayout(new borderlayout()); frame.add(new jscrollpane(tp)); frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); } }); } }
Comments
Post a Comment