JScrollBar Wert setzen



  • Ich bin mir nicht sicher ob ich die Funktion setValue() in JScrollBar richtig verstanden habe. So wie ich das sehe, kann ich damit den Scrollbalken setzen. Also bsplw. wenn ich my_jscrollbar.setValue(50) setze, dann wir der Scrollbalken in die Mitte gesetzt. Davon gehe ich aus(bitte korrigieren falls die Annahme falsch ist).

    Nun habe ich folgendes geschrieben:

    public class MyJScrollPane extends JScrollPane implements AdjustmentListener {
    
    	static final long serialVersionUID = 12;
    	MyJPanel tp;
    
    	public void adjustmentValueChanged( AdjustmentEvent e ) {
    			this.repaint();
    			System.out.println( this.getVerticalScrollBar().getValue() );
    	}
    
    	public MyJScrollPane( PriceLine pl ) {
    		super(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED , ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
    		tp = new MyJPanel( pl );
    		this.setViewportView( tp );
    		this.getHorizontalScrollBar().addAdjustmentListener( this );
    		this.getVerticalScrollBar().addAdjustmentListener(this);
    		System.out.println( this.getVerticalScrollBar().getMaximum() );
    		System.out.println( this.getVerticalScrollBar().getMinimum() );
    		this.getVerticalScrollBar().setValue( 50 );
    		this.setSize( 1000 , 500 );
    	}
    }
    

    Nun habe ich zwei Probleme:

    1. getMaximum() und getMinimum() geben bei mir 100 respektive 0 aus. Deshalb setze ich den Wert in setValue(50) auf 50 also 50% was ja dann die Mitte der VerticalScollbar sein sollte. Aber genau das passiert nicht. Der Scrollbalken ist nur leicht nach unten verschoben und schon garnicht in der Mitte.
    2. In der Method public void adjustmentValueChanged( AdjustmentEvent e ) die ich durch das Interface definieren muß gebe ich den Wert der VerticalScrollbar aus. Komischerweise wird der Wert 800 ausgegeben, wenn ich den Scollbalken in der Mitte manuell positioniere. Gebe ich darauf hin setValue(800) ein dann bewegt sich der Balken trotzdem nicht an die richtige Stelle.

Anmelden zum Antworten