Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将滚动条添加到JFrame_Java_Swing_Scrollbar - Fatal编程技术网

Java 将滚动条添加到JFrame

Java 将滚动条添加到JFrame,java,swing,scrollbar,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();

在这段代码中,我有一个
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);
            }
        });
    }
}
import javax.swing.*;
公共类NewJFrame扩展了javax.swing.JFrame{
private javax.swing.JPanel arr[]=new JPanel[100];
公共NewJFrame(){
初始化组件();
对于(int i=0;i<5;i++){
arr[i]=新的JPanel();
arr[i].setLayout(空);
新面板(arr[i]);
arr[i].setBounds(0,i*375,610,370);
getContentPane().add(arr[i]);
}
JScrollPane scroll=新的JScrollPane(JScrollPane.VERTICAL\u滚动条\u始终,
JScrollPane.水平滚动条(根据需要);
getContentPane().add(滚动);
}
专用面板(JPanel面板){
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=newjavax.swing.JPanel();
lImage=newjavax.swing.JLabel();
pInfo=newjavax.swing.JPanel();
jLabel1=newjavax.swing.JLabel();
jLabel2=newjavax.swing.JLabel();
jLabel3=newjavax.swing.JLabel();
jLabel4=newjavax.swing.JLabel();
jLabel5=newjavax.swing.JLabel();
setBackground(新java.awt.Color(255、255、255));
setboorder(javax.swing.BorderFactory.createLineBorder(新java.awt.Color(0,0,0));
pImage.setLayout(空);
setBackground(新java.awt.Color(255、255、255));
lImage.setText(“jLabel1”);
添加(lImage);
立根(0,0280370);
面板。添加(pImage);
立根数(0,0280370);
setBackground(新java.awt.Color(255、255、255));
setboorder(javax.swing.BorderFactory.createLineBorder(新java.awt.Color(0,0,0));
pInfo.setLayout(空);
jLabel1.setFont(新的java.awt.Font(“Tahoma”,1,13));//NOI18N
jLabel1.setText(“Info1:”);
pInfo.add(jLabel1);
jLabel1.立根(10,10,90,30);
jLabel2.setFont(新的java.awt.Font(“Tahoma”,1,13));//NOI18N
jLabel2.setText(“Info2:”);
pInfo.add(jLabel2);
jLabel2.立根(10,50,70,30);
jLabel3.setFont(新的java.awt.Font(“Tahoma”,1,13));//NOI18N
jLabel3.setText(“Info3:”);
pInfo.add(jLabel3);
jLabel3.立根(10100,34,16);
jLabel4.setText(“*******************************************”);
pInfo.add(jLabel4);
jLabel4.立根(10140300,20);
jLabel5.setFont(新的java.awt.Font(“Tahoma”,1,13));//NOI18N
jLabel5.setText(“Info4:”);
pInfo.add(jLabel5);
jLabel5.立根(10、160、100、20);
面板。添加(pInfo);
针叶立根(280,030370);
}
@抑制警告(“未选中”)
私有组件(){
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMaximumSize(新java.awt.Dimension(640700));
setMinimumSize(新java.awt.Dimension(640700));
setPreferredSize(新java.awt.Dimension(640700));
可设置大小(真);
getContentPane().setLayout(null);
包装();
}// 
公共静态void main(字符串args[])引发异常{
for(javax.swing.UIManager.LookAndFeelInfo:javax.swing.UIManager.getInstalledLookAndFeels()){
if(“Nimbus”.equals(info.getName())){
setLookAndFeel(info.getClassName());
打破
}
}
invokeLater(new Runnable()){
公开募捐{
新建NewJFrame().setVisible(true);
}
});
}
}

您创建了一个
JScrollPane
并将其添加到
JFrame
中,但从未向
JScrollPane
中添加任何内容--JScrollPane基本上是一个可以添加更多组件的容器。所有东西都应该放在那里。不要使用空布局和
setBounds
,有。@johnny94是的,空布局一开始似乎更容易。但是GUI越复杂,维护空布局就越困难,布局管理器实际上也更容易使用。它们还根据窗口大小布置构件。阅读我链接的教程绝对值得。@LukasRotter重新编辑:如果有名为
panel
(没有)的属性,面板应该是
panel
s。那个符号只用于代码。@AndrewThompson对不起,我以为这是你的本意。我还刚刚意识到OP实际上在“panel”之后添加了“panel”,这就是为什么它出现在“panel
s on
JFrame”上的原因。您创建了一个
JScrollPane
并将其添加到
JFrame
中,但您从未在
JScrollPane
中添加任何内容--JScrollPane基本上是一个可以添加更多组件的容器。所有东西都应该放在那里。不要使用空布局和
setBounds
,有。@johnny94是的,空布局一开始似乎更容易。但是GUI越复杂,维护空布局就越困难,布局管理器实际上也更容易使用。它们还根据窗口大小布置构件。阅读我链接的教程绝对值得。@LukasRotter重新编辑:如果有名为
panel
(没有)的属性,面板应该是
panel
s。那个符号只用于代码。@AndrewThompson对不起,我以为这是你的本意。我还刚刚意识到OP实际上在“panel”之后添加了“panel”,这就是为什么它被命名为“panel
s on
JFrame”。