JTextArea 텍스트가 있고 JScrollPane pane = 새 JScrollPane (텍스트)인데 pane.setAutoScrolls (true)를 넣습니다. 마지막 구획 (마지막 줄)에서 스크롤하는 구성 요소 텍스트에 일부 텍스트를 추가하면 어떻게 얻을 수 있습니까?JScrollPane 마지막으로 추가 된 행에서 스크롤
1
A
답변
3
이 스레드에서 링크를 따라 ScrollPane scroll to bottom problem
3
최상 (하고 최신, 지금까지 내가 말할 수있는) 캐럿이, 롭 Camick로 이동하는 방법에 대한 설명 :
http://tips4java.wordpress.com/2008/10/22/text-area-scrolling/
1
EDT에 있지 않은 것이 가능합니까? EDT에서 append가 발생하지 않으면 JTextArea의 위치가 업데이트되지 않습니다.
짧은은 실행 가능한 예제는이 동작을 보여 :
import java.awt.TextArea;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
public class Sample {
public static void main(String[] args) {
/*
* Not on EDT
*/
showAndFillTextArea("Not on EDT", 0, 0);
/*
* On EDT
*/
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
showAndFillTextArea("On EDT", 400, 0);
}
});
}
private static void showAndFillTextArea(String title, int x, int y) {
JFrame frame = new JFrame(title);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextArea textArea = new JTextArea(20, 20);
JScrollPane scrollPane = new JScrollPane(textArea);
frame.getContentPane().add(scrollPane);
frame.pack();
frame.setLocation(x, y);
frame.setVisible(true);
for(int i = 0; i < 50; i++) {
textArea.append("Line" + i + "\n");
}
}
}
IIRC, setAutoScrolls()가 동작을 drag'n'drop 관련된 경우에만, 당신이 JScrollPane의 내용을 드래그 시작하고 끌어 갈 경우 즉, 바깥쪽에 있으면 내용이 자동으로 올바른 방향으로 스크롤됩니다. – jfpoilpret