Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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 我如何展示jpanel?_Java_Swing_Jframe - Fatal编程技术网

Java 我如何展示jpanel?

Java 我如何展示jpanel?,java,swing,jframe,Java,Swing,Jframe,我制作了一个电影院系统。我把电影和电影院放在一个表格里。我还想给电影院看电影。电影剧场的座位是用朱布顿做的,我把这些座位放在一个jpanel里 选择电影院后,我如何显示座位 这是我的密码 final ArrayList<JPanel> panels = new ArrayList<>(); for(int k=0;k<theater.size();k++){ JPanel panel = new JPanel(); pan

我制作了一个电影院系统。我把电影和电影院放在一个表格里。我还想给电影院看电影。电影剧场的座位是用朱布顿做的,我把这些座位放在一个jpanel里

选择电影院后,我如何显示座位

这是我的密码

final ArrayList<JPanel> panels = new ArrayList<>();


    for(int k=0;k<theater.size();k++){
        JPanel panel = new JPanel();
        panel.setBounds(500, 0, 500, 500);
        contentPane.add(panel);

        int y = theater.get(k).getCapacity();
        int x = 500/y;          

        for(int i=0;i<y;i++){
            for(int j=0;j<y;j++){
                JButton button = new JButton(letters[i]+numbers[j]);
                button.setBounds(500 + x*j, 0 + x*i, x-5, x-5);
                panel.add(button);
            }
        }
        repaint();
        panels.add(panel);      
    }
final ArrayList panels=new ArrayList();

对于(int k=0;k不要使用
setBounds()
方法,而是将其留给布局管理器来设置组件的大小和位置,这就是为什么制作它的原因

为此设计使用适当的布局,例如,等

了解更多关于布局的信息



不要直接在
JFrame
的内容窗格中添加组件,而是首先在另一个容器(如
JPanel
中添加组件,然后最后将其添加到
JFrame
的内容窗格中。

这里的
contentPane
是什么?它在JFrame中。这并不重要。发布之前,您无法知道什么是重要的(最小完整且可验证的示例)。很可能您正在使用
null
layout?是的,您是对的。@BrajCan我可以只为jpanel使用网格布局吗?当然可以。如果它符合您的设计,那么请阅读更多关于它的信息,然后使用它并删除所有
setBounds
方法。但我想在jFrame的右侧执行此操作。没有setBounds()我怎么做?您可以使用多个容器,例如
JPanel
以适当的布局在其中添加组件。除非我有完整的可测试代码,否则我无法帮助您。