Java中的可滚动JFrame

时间:2011-04-02 03:23:10

标签: java user-interface scrollbar jframe

我有一个带有“Driver GUI”java文件的程序,它创建了一个JFrame及其规范。

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);
  }

此GUI调用.setContentPane方法并将其连接到我创建了所有JLables,JButton和JTextfields的资源类。

资源代码的片段如下所示:

    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);

所以我的问题是,在将JFrame和setResizable的维度设置为false(.setResizable(false))后,如何使我的JFrame垂直滚动;)?

2 个答案:

答案 0 :(得分:1)

您可以使用JScrollPane并将其视图端口设置为面板。

答案 1 :(得分:0)

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