# JScrollPane - Position setzen der Scrollbalken



## vogella (8. Dez 2006)

Hallo, 

wie kann ich Position des Scrollbalkens (für ein JTextField) ermitteln und diesen Scrollbalken dann setzen?

Beispiel: Ich würde hier gerne den vertikalen Scrollbalken ganz nach unten setzen, d.h. den Text ganz unten zeigen.

Viele Grüße, Lars




```
package testDrive;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class ScrollJPane extends JFrame {
	public ScrollJPane() {
		getContentPane().add(buildDetailPanel(), BorderLayout.SOUTH);
		pack();
	}
	private JPanel buildDetailPanel(){
		JPanel panel = new JPanel();
		JTextArea text = new JTextArea(20, 20);
		text.setLineWrap(true);
		String s= "";
		for (int i=0; i<= 1000; i++){
			s+="Richtig langer Text. ";
		}
		text.setText(s);
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
		
		scrollPane.getViewport().setView(text);

		panel.add(scrollPane);
		return panel;
	}
	public static void main (String[]args){
		ScrollJPane test = new ScrollJPane();
		test.setVisible(true);
	}
}
```


----------



## dieta (8. Dez 2006)

Das müsste so gehen:

```
dasJScrollPane.getVerticalScrollBar().setValue(dasJScrollPane.getVerticalScrollBar().getMaximum());
```

[edit]
Und wenn das nicht funzt, das da funzt auf jeden Fall:

```
dasJScrollPane.getVerticalScrollBar().setValue(Integer.MAX_VALUE);
```
[/edit]


----------



## vogella (8. Dez 2006)

Hallo dieta,

leider wird der Scrollbalken immer noch oben angezeigt. D.h. ich sehe immer noch den Text oben.

Viele Grüße, Lars


```
package testDrive;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class ScrollJPane extends JFrame {
	public ScrollJPane() {
		getContentPane().add(buildDetailPanel(), BorderLayout.SOUTH);
		pack();
	}
	/**
	 * @return
	 */
	private JPanel buildDetailPanel(){
		JPanel panel = new JPanel();
		JTextArea text = new JTextArea(20, 20);
		text.setLineWrap(true);
		String s= "";
		for (int i=0; i<= 1000; i++){
			s+="Richtig langer Text. ";
		}
		text.setText(s);
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
		
		scrollPane.getViewport().setView(text);
		scrollPane.getVerticalScrollBar().setValue(Integer.MAX_VALUE);
		panel.add(scrollPane);
		return panel;
	}
	public static void main (String[]args){
		ScrollJPane test = new ScrollJPane();
		test.setVisible(true);
	}
```


----------



## vogella (11. Dez 2006)

Hallo, 

hat jemand noch einen Tipp? Viele Grüße, Lars


----------



## para_ (11. Dez 2006)

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/JTextComponent.html#setCaretPosition(int)

 die foren suche hilft auch manchmal, das thema kam schon paarmal


----------



## vogella (11. Dez 2006)

Hallo para,

danke, hat geholfen. Das nächste Mal suche ich länger im Forum.  Viele Grüße, Lars


----------

