Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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
JavaGUI游戏:使用Jframes的帮助_Java_Swing_User Interface_Jframe - Fatal编程技术网

JavaGUI游戏:使用Jframes的帮助

JavaGUI游戏:使用Jframes的帮助,java,swing,user-interface,jframe,Java,Swing,User Interface,Jframe,我一直在玩一些代码来自学。我把这个游戏的编码搞得一团糟。我试图实现的是将当前代码放在一个jframe中,它不支持重新调整大小,并将其放在一个构造更好的窗口中。有3个面板,一个用于游戏按钮,一个用于状态标签,一个用于状态标签,另一个用于按钮 目前,这个类扩展了Jframe,但没有引入makeFrame方法,我一直在尝试这样做。以下代码在构造函数中初始化。相应的字段在那里,我没有包括它们,但它们都是编译的 buttons = new JButton[boardsize][boardsize]

我一直在玩一些代码来自学。我把这个游戏的编码搞得一团糟。我试图实现的是将当前代码放在一个jframe中,它不支持重新调整大小,并将其放在一个构造更好的窗口中。有3个面板,一个用于游戏按钮,一个用于状态标签,一个用于状态标签,另一个用于按钮

目前,这个类扩展了Jframe,但没有引入makeFrame方法,我一直在尝试这样做。以下代码在构造函数中初始化。相应的字段在那里,我没有包括它们,但它们都是编译的

    buttons = new JButton[boardsize][boardsize];
    mineBoard = new int[9][9];
    setSize(boardsize * gridsize + 60, boardsize * gridsize + 180);
    getContentPane().setLayout(null);


    getContentPane().add(namelabel);
    getContentPane().add(scorelabel);
    getContentPane().add(gamesPlayed);


    // LABEL POSITIONING ON BOARD
    scorelabel.setBounds(30, 30 + gridsize * boardsize, 130, 30);
    namelabel.setBounds(40, 40 + gridsize * boardsize, 130, 30);
    gamesPlayed.setBounds(60, 60 + gridsize * boardsize, 130, 30);


    for (int a = 0; a < boardsize; a++) {
        for (int b = 0; b < boardsize; b++) {
            buttons[a][b] = new JButton("");
            getContentPane().add(buttons[a][b]);
            buttons[a][b].setBounds(30 + gridsize * a, 30 + gridsize * b, gridsize, gridsize);
            buttons[a][b].addMouseListener(new MouseListener(a, b));
            //buttons[a][b].setIcon( new ImageIcon( "images/rock.jpg" ) );

            setx(a);
            sety(b);
            settried(false);
            setmine(false);
        }
    }

    assignmines();
    setVisible(true);
    updateGamesPlayed();
    UpdateName();
    updatescore();

如果有人能以任何方式帮助我,告诉我如何使用makeFrame方法实现目标,那就太好了。

您的第一个问题是getContentPane.setLayoutnull;。避免使用空布局,像素完美布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计目的是与布局管理器一起工作,丢弃这些将导致问题层出不穷,您将花费越来越多的时间试图纠正这些问题。1为了更快地获得更好的帮助,发布一个最小的完整可验证示例或简短、自含、正确的示例。另外,问一个问题也会很有用。谢谢,我会记住这两个问题,并想出一个更好的提问方式。