将滚动条添加到JFrame

时间:2016-08-18 10:53:27

标签: java swing scrollbar

在这段代码中,我有一组JPanel个容器。我将JFrame上的这些面板添加到另一个下面,但我的滚动条无法正常工作。

错误是什么?

这是代码:

import javax.swing.*;

public class NewJFrame extends javax.swing.JFrame {

    private javax.swing.JPanel arr[] = new JPanel[100];

    public NewJFrame() {
        initComponents();

        for (int i = 0; i < 5; i++) {
            arr[i] = new JPanel();
            arr[i].setLayout(null);
            newPanel(arr[i]);
            arr[i].setBounds(0, i * 375, 610, 370);
            getContentPane().add(arr[i]);
        }
        JScrollPane scroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        getContentPane().add(scroll);
    }

    private void newPanel(JPanel panel) {
        javax.swing.JLabel jLabel1;
        javax.swing.JLabel jLabel2;
        javax.swing.JLabel jLabel3;
        javax.swing.JLabel jLabel4;
        javax.swing.JLabel jLabel5;

        javax.swing.JLabel lImage;
        javax.swing.JPanel pInfo;
        javax.swing.JPanel pImage;
        pImage = new javax.swing.JPanel();
        lImage = new javax.swing.JLabel();
        pInfo = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();

        pImage.setBackground(new java.awt.Color(255, 255, 255));
        pImage.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        pImage.setLayout(null);

        lImage.setBackground(new java.awt.Color(255, 255, 255));
        lImage.setText("jLabel1");
        pImage.add(lImage);
        lImage.setBounds(0, 0, 280, 370);

        panel.add(pImage);
        pImage.setBounds(0, 0, 280, 370);

        pInfo.setBackground(new java.awt.Color(255, 255, 255));
        pInfo.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        pInfo.setLayout(null);

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 13)); // NOI18N
        jLabel1.setText("Info1:");
        pInfo.add(jLabel1);
        jLabel1.setBounds(10, 10, 90, 30);

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 13)); // NOI18N
        jLabel2.setText("Info2:");
        pInfo.add(jLabel2);
        jLabel2.setBounds(10, 50, 70, 30);

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 13)); // NOI18N
        jLabel3.setText("Info3:");
        pInfo.add(jLabel3);
        jLabel3.setBounds(10, 100, 34, 16);

        jLabel4.setText("*************************************");
        pInfo.add(jLabel4);
        jLabel4.setBounds(10, 140, 300, 20);

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 13)); // NOI18N
        jLabel5.setText("Info4:");
        pInfo.add(jLabel5);
        jLabel5.setBounds(10, 160, 100, 20);

        panel.add(pInfo);
        pInfo.setBounds(280, 0, 330, 370);
    }

    @SuppressWarnings("unchecked")
    private void initComponents() {
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setMaximumSize(new java.awt.Dimension(640, 700));
        setMinimumSize(new java.awt.Dimension(640, 700));
        setPreferredSize(new java.awt.Dimension(640, 700));
        setResizable(true);
        getContentPane().setLayout(null);
        pack();
    }// </editor-fold>

    public static void main(String args[]) throws Exception {

        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
}

0 个答案:

没有答案