title: Java - Open JScrollPane with JScrollBar set to the right
body: <p>I'm looking to try and load up a JScrollPane with the horizontal JScrollBar set all the way to the right, i.e. like in this image:</p>
  
  <p><a href="http://i.imgur.com/VeKYPa6.png" rel="nofollow">http://i.imgur.com/VeKYPa6.png</a></p>
  
  <p>However, no matter what I do, I end up with this image:</p>
  
  <p><a href="http://i.imgur.com/c9KzRqZ.png" rel="nofollow">http://i.imgur.com/c9KzRqZ.png</a></p>
  
  <p>This is the relevant snippet of my code</p>
  
  <pre><code>    JComponent graph = new TrendsForSuccLarge(wccScores, wccScoresTimes, graphStrings, maxScore, bgColour, iPadWidth);
  
      JScrollPane graphScrollPane = new JScrollPane(graph, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  
      JScrollBar horizontal = graphScrollPane.getHorizontalScrollBar();
      horizontal.setValue( horizontal.getMaximum() );
  
      this.getContentPane().add(graphScrollPane, BorderLayout.CENTER);
  </code></pre>
  
  <p>Any ideas of what's going wrong?</p>
  
  <p>Thanks in advance!</p>
  
  <p>Kesh</p>
  
  <p>SSCCE</p>
  
  <pre><code>import javax.swing.JFrame;
  import java.awt.BorderLayout;
  import java.awt.Dimension;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import javax.swing.JButton;
  import javax.swing.JComponent;
  import javax.swing.JDialog;
  import javax.swing.JPanel;
  import javax.swing.JScrollPane;
  import java.awt.Color;
  import java.awt.Graphics;
  import java.awt.Graphics2D;
  import java.awt.RenderingHints;
  
  class ForStackOverflow  {
  
      private static JFrame main;
      //opens up a line chart on full screen
  
      public static void main(String args[]) {
  
          TempGraph tg = new TempGraph(main);
          tg.setVisible(true);
  
      }
  }
  
  class TempGraph extends JDialog {
  
      private static final long serialVersionUID = 1L;
  
      //opens up a line chart on full screen
  
      public TempGraph(JFrame parent)
      {
          // load the frame
          super(parent,true);
          configureFrame();
      }
  
      private void configureFrame()
      {
  
          int iPadHeight = 644;
          int iPadWidth = 981;
  
          this.getContentPane().setLayout(new BorderLayout());
  
          JComponent graph = new TrendsForSuccLarge2(iPadWidth);
  
          JScrollPane graphScrollPane = new JScrollPane(graph, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  
          this.getContentPane().add(graphScrollPane, BorderLayout.CENTER);
  
          JPanel buttons = new JPanel();
          buttons.setLayout(new BorderLayout());
  
          JButton ok = new JButton("Done");
          ok.addActionListener(new ActionListener(){
              public void actionPerformed(ActionEvent e) {
                  next();
              }
          });
          buttons.add(ok,BorderLayout.CENTER);
          JButton exit = new JButton("Exit");
          exit.addActionListener(new ActionListener(){
              public void actionPerformed(ActionEvent e) {
                  System.exit(0);
              }
          });
          buttons.add(exit,BorderLayout.WEST);
  
          this.getContentPane().add(buttons, BorderLayout.SOUTH);
  
          this.pack();        
          this.setSize(this.getWidth(), 750);
          this.setResizable(true);
          Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
          int widthFrame = iPadWidth;
          int heightFrame = iPadHeight;
          this.setSize(widthFrame, heightFrame);
          setBounds((screenSize.width - this.getWidth()) / 2,
                  (screenSize.height - this.getHeight()) / 2, 
                  getWidth(),
                  getHeight());
      }
  
      private void next()
      {
          this.setVisible(false);
      }
  
  }
  
  class TrendsForSuccLarge2 extends JComponent {
  
      // basic parameters
      private static int PREF_W = 200;
      private static final int PREF_H = 200;
      private static final int BORDER_GAP = 10;
      private static final int GRAPH_GAP = BORDER_GAP + 20;
  
      private int graphWidth = 0;
  
      private static final long serialVersionUID = 1L;
  
      TrendsForSuccLarge2(int prefGraphWidth) {
  
          graphWidth = prefGraphWidth;
  
          paintComponent(null);
      }
  
      public void paint(Graphics g) { 
  
          int windowWidth = 2600;
  
          PREF_W = windowWidth;
  
          super.paintComponent(g);
          Graphics2D g2 = (Graphics2D)g;
          g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  
          g2.drawString("Hello", graphWidth/2, getHeight() - GRAPH_GAP);
  
          g2.drawString("Hello1", graphWidth - GRAPH_GAP, getHeight() - GRAPH_GAP);
  
          g2.drawString("Hello2", windowWidth - GRAPH_GAP - GRAPH_GAP, getHeight() - GRAPH_GAP);
  
          // create x and y axes 
          g2.setColor(Color.black);
          g2.drawLine(GRAPH_GAP, getHeight() - GRAPH_GAP, GRAPH_GAP, GRAPH_GAP);
          g2.drawLine(GRAPH_GAP, getHeight() - GRAPH_GAP, windowWidth - GRAPH_GAP, getHeight() - GRAPH_GAP);
  
      }
  
      public Dimension getPreferredSize() {
          return new Dimension(PREF_W, PREF_H);
      }
  
  }
  </code></pre>