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());
}
}
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();
}
}