Philip McQuitty
Philip McQuitty

Reputation: 1077

Scrollabe JFrame in Java

I have a program with "Driver GUI" java file that creates a JFrame and its specifications.

public static void main(String[] args)

  {
     /*Create a frame (outside box) and write what text 
     will be displayed as the frame title*/ 
     JFrame frame = new JFrame("PHILIP MCQUITTY");

     //give frame a size
     frame.setSize(520,375);

     //set location on the computer screen will frame appear
     frame.setLocation(400, 166);

     //use this so when you press X in corner, frame will close
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     //Add your panel to the frame. name must match Panel class name
     frame.setContentPane(new GpaCalc());

        //frame.setResizable(false);

     // always include
     frame.setVisible(true);
  }

This GUI calls the .setContentPane method and connects it to my resource class where I have created all my JLables, JButtons, and JTextfields.

A snippet of the resource code looks like this:

    public class GpaCalc extends JPanel
   {
      private JLabel GPALabel, c1, c2, c3, c4, c5, c6, c7, g1, g2, g3, g4, g5, g6, g7;
      private JTextField Class1, Class2, Class3, Class4, Class5, Class6, Class7, Grade1, Grade2, Grade3, Grade4, Grade5, Grade6, Grade7;
      private double GPA1, GPA2, GPA3, GPA4, GPA5, GPA6, GPA7, GPA, BigDec;

      public GpaCalc()
      {

         setLayout (new FlowLayout());

         JPanel panel=new JPanel();


      //Class Labels
         GPALabel = new JLabel ("0.00000000000000");
         GPALabel.setFont (new Font("Times New Roman", Font.BOLD, 60));
         GPALabel.setForeground (Color.red);

So my question is, how do I make my JFrame vertically scroll after I set the dimensions of my JFrame and setResizable to false (.setResizable(false));)?

Upvotes: 0

Views: 928

Answers (2)

camickr
camickr

Reputation: 324207

frame.setContentPane(new JScrollPane(new GpaCalc())); 

Upvotes: 0

Bala R
Bala R

Reputation: 109027

You can use JScrollPane for that and set it's view port to your panel.

Upvotes: 1

Related Questions