Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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 将JScrollPane添加到现有JPanel_Java_Swing_User Interface - Fatal编程技术网

Java 将JScrollPane添加到现有JPanel

Java 将JScrollPane添加到现有JPanel,java,swing,user-interface,Java,Swing,User Interface,我正在尝试将JScrollPane(createTeamScrollPane)添加到我拥有的JPanel(createTeamPanel)中。我有一个框架,有一个边界布局,北部部分由一个名为tabMenu的JPanel使用,然后中间部分我希望我的“createTeamPanel”具有这种滚动功能,因为它的内容将超过我一次可以在屏幕上显示的内容。然后我将两个面板添加到框架中。当前代码按原样运行,但窗口显示为空。一旦调整了窗口的大小,我就会在框架的北部看到3个按钮(为什么会出现这种情况?),当我单击

我正在尝试将JScrollPane(createTeamScrollPane)添加到我拥有的JPanel(createTeamPanel)中。我有一个框架,有一个边界布局,北部部分由一个名为tabMenu的JPanel使用,然后中间部分我希望我的“createTeamPanel”具有这种滚动功能,因为它的内容将超过我一次可以在屏幕上显示的内容。然后我将两个面板添加到框架中。当前代码按原样运行,但窗口显示为空。一旦调整了窗口的大小,我就会在框架的北部看到3个按钮(为什么会出现这种情况?),当我单击“创建团队”时,它会显示我期望的JLabel和JButton列表,但我没有看到任何滚动条

public static void main (String args[]) {

    JFrame frame = new JFrame();
    frame.setTitle("v0.01");
    frame.setSize(800, 800);
    //frame.setLayout(null);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel mainPanel = new JPanel();
    mainPanel.setLayout(new BorderLayout());

    JPanel tabMenu = new JPanel();

    JPanel createTeamPanel = new JPanel();
    createTeamPanel.setLayout(new BoxLayout(createTeamPanel, BoxLayout.Y_AXIS));
    createTeamPanel.setSize(800, 700);
    createTeamPanel.setVisible(showCreateTeamPanel);
    createTeamPanel.setBackground(Color.gray);

    JScrollPane createTeamScrollPane = new JScrollPane(createTeamPanel);
    createTeamScrollPane.setBounds(50, 50, 200, 500);
    createTeamScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    createTeamScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    createTeamScrollPane.setPreferredSize(new Dimension(500,500));
    //createTeamPanel.add(createTeamScrollPane);

    List<Player> teamList = MockTeams.initTeam();

    int xcoord = 100;
    int ycoord = 50;

    for(Player player : teamList) {
        JLabel label = new JLabel(player.getName());
        label.setBounds(xcoord, ycoord, Constants.buttonWidth, Constants.buttonHeight);

        JButton addToTeamBtn = new JButton("Add to team");
        addToTeamBtn.setBounds(xcoord + 100, ycoord, Constants.buttonWidth, Constants.buttonHeight);
        addToTeamBtn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                myTeam.add(player);
                addToTeamBtn.setEnabled(false);
            }
        });

        createTeamPanel.add(label);
        //createTeamFrame.add(label);
        createTeamPanel.add(addToTeamBtn);
        //createTeamFrame.add(addToTeamBtn);

        ycoord += 50;
    }

    JButton createTeamBtn = new JButton("Create Team");
    createTeamBtn.setBounds(0,0,150,20);
    createTeamBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            //Hide/Show Create team panel
            if (!showCreateTeamPanel) {
                showCreateTeamPanel = true;
                createTeamPanel.setVisible(showCreateTeamPanel);
            } else {
                showCreateTeamPanel = false;
                createTeamPanel.setVisible(showCreateTeamPanel);
            }

        }
    });

    JButton manageTeamBtn = new JButton("Team Statistics");
    manageTeamBtn.setBounds(100,150,150,40);

    JButton resetBtn = new JButton("Reset Season");
    resetBtn.setBounds(100,200,150,40);

    tabMenu.add(createTeamBtn);
    tabMenu.add(manageTeamBtn);
    tabMenu.add(resetBtn);

    mainPanel.add(tabMenu, BorderLayout.NORTH);
    mainPanel.add(createTeamPanel, BorderLayout.CENTER);

    frame.add(mainPanel);

}
publicstaticvoidmain(字符串参数[]){
JFrame=新JFrame();
框架设置标题(“v0.01”);
框架设置尺寸(800800);
//frame.setLayout(空);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel=新的JPanel();
setLayout(新的BorderLayout());
JPanel tabMenu=新的JPanel();
JPanel createTeamPanel=新的JPanel();
setLayout(新的BoxLayout(createTeamPanel,BoxLayout.Y_轴));
createTeamPanel.setSize(800700);
setVisible(showCreateTeamPanel);
createTeamPanel.setBackground(颜色:灰色);
JScrollPane createTeamScrollPane=新的JScrollPane(createTeamPanel);
createTeamScrollPane.setBounds(50,50200500);
createTeamScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HorizontalScrollBar,根据需要);
createTeamScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL\u SCROLLBAR\u根据需要);
createTeamScrollPane.setPreferredSize(新维度(500500));
//添加(createTeamScrollPane);
List teamList=MockTeams.initTeam();
int xcoord=100;
int ycoord=50;
对于(玩家:团队列表){
JLabel label=新的JLabel(player.getName());
label.setBounds(xcoord、ycoord、Constants.buttonWidth、Constants.buttonHeight);
JButton addToTeamBtn=新JButton(“添加到团队”);
addToTeamBtn.setBounds(xcoord+100,ycoord,Constants.buttonWidth,Constants.buttonHeight);
addToTeamBtn.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
添加(玩家);
addToTeamBtn.setEnabled(假);
}
});
createTeamPanel.add(标签);
//createTeamFrame.add(标签);
createTeamPanel.add(addToTeamBtn);
//createTeamFrame.add(addToTeamBtn);
ycoord+=50;
}
JButton createTeamBtn=新JButton(“创建团队”);
createTeamBtn.setBounds(0,0150,20);
createTeamBtn.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
//隐藏/显示“创建团队”面板
如果(!showCreateTeamPanel){
showCreateTeamPanel=true;
setVisible(showCreateTeamPanel);
}否则{
showCreateTeamPanel=false;
setVisible(showCreateTeamPanel);
}
}
});
JButton manageTeamBtn=新JButton(“团队统计”);
manageTeamBtn.setBounds(100150150,40);
JButton resetBtn=新JButton(“重置季节”);
重置BTN.立根(100200150,40);
tabMenu.add(createTeamBtn);
tabMenu.add(manageTeamBtn);
tabMenu.add(resetBtn);
添加(选项卡菜单,BorderLayout.NORTH);
添加(createTeamPanel,BorderLayout.CENTER);
添加框架(主面板);
}

预期结果是在createTeamPanel上看到一个滚动功能,但它不在那里。

修复:我能够通过以下方式将JScrollPane添加到主面板:

添加(createTeamScrollPane,BorderLayout.CENTER)