Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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中向框架添加网格布局面板和边框布局面板_Java_Jframe_Jpanel - Fatal编程技术网

在java中向框架添加网格布局面板和边框布局面板

在java中向框架添加网格布局面板和边框布局面板,java,jframe,jpanel,Java,Jframe,Jpanel,我想知道如何将我的面板定位在同一个jframe中,其中网格布局面板位于中间,边框布局位于底部。像这样:但这很棘手,因为我不知道如何在jframe中定位面板。这是我的密码: public GameWindow() { super("Game Window"); this.setSize(1500, 800); this.setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thi

我想知道如何将我的面板定位在同一个jframe中,其中网格布局面板位于中间,边框布局位于底部。像这样:但这很棘手,因为我不知道如何在jframe中定位面板。这是我的密码:

public GameWindow()

{
    super("Game Window");
    this.setSize(1500, 800);
    this.setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLayout(new BorderLayout());
    label1 = new JLabel("");
    label2 = new JLabel("");
    label3 = new JLabel("");
    label4 = new JLabel("");
    label5 = new JLabel("");

    int i = 15;
    int j = 20;
    JPanel[][] panel1 = new JPanel[i][j];
    setLayout(new GridLayout(i,j));

    for(int m = 0; m < i; m++) {
       for(int n = 0; n < j; n++) {
          panel1[m][n] = new JPanel();
          this.add(panel1[m][n]);
       }
    }

    JPanel panel2 = new JPanel();
    panel2.setLayout(new BorderLayout());
    panel2.setPreferredSize(new Dimension(this.getWidth(), 100));
    panel2.setBorder(new BevelBorder(BevelBorder.LOWERED));
    this.add(panel2, BorderLayout.SOUTH);
    JLabel statusLabel = new JLabel("status");
    statusLabel.setHorizontalAlignment(SwingConstants.LEFT);
    panel2.add(statusLabel);

    this.setVisible(true);

    down = new JButton("down");
    right = new JButton("right");
    left= new JButton("left");
    up = new JButton("up");
    fight = new JButton("fight");
    flee = new JButton("flee");

    panel1[5][3].add(up);
    panel1[8][4].add(left);
    panel1[7][2].add(right);
    panel1[3][5].add(down);
    panel2.add(label1);
    panel2.add(label2);
    panel2.add(label3);
    panel2.add(label4);
    panel2.add(label5);
    panel2.add(fight);
    panel2.add(flee);
公共游戏窗口()
{
超级(“游戏窗口”);
此.setSize(1500800);
此.setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
此.setLayout(新的BorderLayout());
标签1=新的JLabel(“”);
label2=新的JLabel(“”);
label3=新的JLabel(“”);
label4=新的JLabel(“”);
label5=新的JLabel(“”);
int i=15;
int j=20;
JPanel[]panel1=新的JPanel[i][j];
setLayout(新网格布局(i,j));
对于(int m=0;m
当我运行它时,它显示如下:
我希望状态栏横跨整个底部,但它不起作用。
非常感谢您的帮助!

很抱歉我的问题,但是为什么您有这么多面板?我想我应该足够放在您布局的上部了。我只有两个面板,一个放在顶部,一个放在底部。我希望网格布局在顶部,状态栏在底部。我看到您正在用这行
JP创建一个
JPanel
矩阵anel[]panel1=新的JPanel[i][j]
,我不明白为什么您只需要在顶部安装一个jPanel:)对不起,我的问题是,为什么您要安装所有这些面板?我想我应该足够安装布局的上部。我只有两个面板,一个用于顶部,一个用于底部。我希望顶部有网格布局,底部有状态栏。我看到您正在创建一个ma
JPanel
的trix,这一行是
JPanel[][]panel1=newjpanel[i][j];
,我不明白为什么您只需要一个JPanel在上面:)