jtextpane jtextarea 使滚动条到最后(或最前) 通过设置光标位置
jTextPane0.setCaretPosition(jTextPane0.getDocument().getLength());
、、、、、、、、、、、
package PositionEnd;
import javax.swing.JTextPane;
public class PoTh implements Runnable{ JTextPane jTextPane0; public PoTh(JTextPane jTextPane0){ this.jTextPane0=jTextPane0; }
@Override public void run() { while(true){ jTextPane0.setText(jTextPane0.getText()+"\r\nyyyyyyyyvv"); jTextPane0.setCaretPosition(jTextPane0.getDocument().getLength()); try { Thread.sleep(1000); System.out.println(jTextPane0.getText().length()); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
}
、、、、、
package PositionEnd;
import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent;
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.SwingUtilities; import javax.swing.UIManager;
import org.dyno.visual.swing.layouts.Constraints; import org.dyno.visual.swing.layouts.GroupLayout; import org.dyno.visual.swing.layouts.Leading;
//VS4E -- DO NOT REMOVE THIS LINE! public class ddd extends JFrame {
private static final long serialVersionUID = 1L; private JTextPane jTextPane0; private JButton jButton0; private JTextPane jTextPane1; private JTextPane jTextPane2; private JScrollPane jScrollPane0; private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel"; public ddd() { initComponents(); }
private void initComponents() { setLayout(new GroupLayout()); add(getJButton0(), new Constraints(new Leading(65, 10, 10), new Leading(153, 10, 10))); add(getJScrollPane0(), new Constraints(new Leading(65, 100, 12, 12), new Leading(21, 100, 10, 10))); setSize(320, 240); }
private JScrollPane getJScrollPane0() { if (jScrollPane0 == null) { jScrollPane0 = new JScrollPane(); jScrollPane0.setViewportView(getJTextPane2()); } return jScrollPane0; }
private JTextPane getJTextPane2() { if (jTextPane2 == null) { jTextPane2 = new JTextPane(); jTextPane2.setText("jTextPane2"); } return jTextPane2; }
private JTextPane getJTextPane1() { if (jTextPane1 == null) { jTextPane1 = new JTextPane(); jTextPane1.setText("jTextPane1"); } return jTextPane1; }
private JButton getJButton0() { if (jButton0 == null) { jButton0 = new JButton(); jButton0.setText("jButton0"); jButton0.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent event) { jButton0MouseMouseClicked(event); } }); } return jButton0; }
private JTextPane getJTextPane0() { if (jTextPane0 == null) { jTextPane0 = new JTextPane(); jTextPane0.setText("jTextPane0"); } return jTextPane0; }
private static void installLnF() { try { String lnfClassname = PREFERRED_LOOK_AND_FEEL; if (lnfClassname == null) lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName(); UIManager.setLookAndFeel(lnfClassname); } catch (Exception e) { System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL + " on this platform:" + e.getMessage()); } }
/** * Main entry of the class. * Note: This class is only created so that you can easily preview the result at runtime. * It is not expected to be managed by the designer. * You can modify it as you like. */ public static void main(String[] args) { installLnF(); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { ddd frame = new ddd(); frame.setDefaultCloseOperation(ddd.EXIT_ON_CLOSE); frame.setTitle("ddd"); frame.getContentPane().setPreferredSize(frame.getSize()); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }); }
private void jButton0MouseMouseClicked(MouseEvent event) { PoTh th1=new PoTh(this.jTextPane2); Thread th=new Thread(th1); th.start(); }
}