Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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中的JButton_Java_Swing - Fatal编程技术网

Java JPanel中的JButton

Java JPanel中的JButton,java,swing,Java,Swing,我不知道为什么我的网格覆盖了我的按钮,我试图解决它,但我不能。谁能告诉我为什么?是因为我把所有的东西都放在了一起?有人能再按一下右边的播放按钮吗 public game() { make(); JPanel p = new JPanel(); frame.setLayout(new BorderLayout()); resetButton = new JButton("Play"); p.add(playButto

我不知道为什么我的网格覆盖了我的按钮,我试图解决它,但我不能。谁能告诉我为什么?是因为我把所有的东西都放在了一起?有人能再按一下右边的播放按钮吗

public game() {
        make();
        JPanel p = new JPanel();

        frame.setLayout(new BorderLayout());
        resetButton = new JButton("Play");
        p.add(playButton, BorderLayout.EAST);
        frame.add(p);
}
public void make(){
        frame = new JFrame("Gamer");

        frame.setTitle("Gamer");
        JPanel m = new JPanel(new GridLayout(9,9));
        for(int i = 0; i < 9; i++) {
            for(int j = 0; j < 9; j++) {
                grids[i][j] = new JButton();
                m.add(grids[i][j]);
            }
        }
        frame.add(m, BorderLayout.CENTER);
        frame.setResizable(false);
        frame.setSize(width, heigth);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
公共游戏(){
make();
JPanel p=新的JPanel();
frame.setLayout(新的BorderLayout());
resetButton=新的JButton(“播放”);
p、 添加(播放按钮,边框布局。东);
框架。添加(p);
}
公开宣布无效{
frame=新JFrame(“玩家”);
frame.setTitle(“玩家”);
JPanel m=新JPanel(新网格布局(9,9));
对于(int i=0;i<9;i++){
对于(int j=0;j<9;j++){
grids[i][j]=新的JButton();
m、 添加(网格[i][j]);
}
}
框架。添加(m,边框布局。中心);
frame.setresizeable(false);
框架尺寸(宽度、高度);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

您使用的是框架。添加(p)-这可能不会将面板添加到框架的正确区域。 试一试

或者别的什么?i、 e.不将覆盖网格的
居中

还请注意,尚未设置面板的布局,因此默认情况下,它将是一个
FlowLayout

正如程序员所说,不需要设置框架的布局-尤其是在添加网格之后


最后,最好只将面板添加到框架的
getContentPane()

您使用的是
frame.add(p)
-这可能不会将面板添加到框架的正确区域。 试一试

或者别的什么?i、 e.不将覆盖网格的
居中

还请注意,尚未设置面板的布局,因此默认情况下,它将是一个
FlowLayout

正如程序员所说,不需要设置框架的布局-尤其是在添加网格之后


最后,最好只将面板添加到框架的
getContentPane()

您使用的是
frame.add(p)
-这可能不会将面板添加到框架的正确区域。 试一试

或者别的什么?i、 e.不将覆盖网格的
居中

还请注意,尚未设置面板的布局,因此默认情况下,它将是一个
FlowLayout

正如程序员所说,不需要设置框架的布局-尤其是在添加网格之后


最后,最好只将面板添加到框架的
getContentPane()

您使用的是
frame.add(p)
-这可能不会将面板添加到框架的正确区域。 试一试

或者别的什么?i、 e.不将覆盖网格的
居中

还请注意,尚未设置面板的布局,因此默认情况下,它将是一个
FlowLayout

正如程序员所说,不需要设置框架的布局-尤其是在添加网格之后


最后,最好只添加到框架的
getContentPane()

好吧,这是一个大小问题。从字面上说,你的网格和/或按钮太大了,不能放在你想要的地方,所以它们会漏到下一个空间。(即BorderLayout.EAST将泄漏到BorderLayout.CENTER)


尝试将JFrame放大,同时尝试设置JPanel的首选大小,以进一步确保构建良好的窗口。

好吧,这是一个大小问题。从字面上说,你的网格和/或按钮太大了,不能放在你想要的地方,所以它们会漏到下一个空间。(即BorderLayout.EAST将泄漏到BorderLayout.CENTER)


尝试将JFrame放大,同时尝试设置JPanel的首选大小,以进一步确保构建良好的窗口。

好吧,这是一个大小问题。从字面上说,你的网格和/或按钮太大了,不能放在你想要的地方,所以它们会漏到下一个空间。(即BorderLayout.EAST将泄漏到BorderLayout.CENTER)


尝试将JFrame放大,同时尝试设置JPanel的首选大小,以进一步确保构建良好的窗口。

好吧,这是一个大小问题。从字面上说,你的网格和/或按钮太大了,不能放在你想要的地方,所以它们会漏到下一个空间。(即BorderLayout.EAST将泄漏到BorderLayout.CENTER)


尝试将JFrame放大,并尝试设置JPanel的首选大小,以进一步确保构建良好的窗口。

尝试使用frame.add(p,BorderLayout.SOUTH)

这里有一个例子

守则:

import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class game {
    JFrame frame;
    JButton grids[][] = new JButton[9][9];

    public game() {
        make();
        JPanel p = new JPanel();
        JButton resetButton = new JButton("reset");
        JButton playButton = new JButton("Play");
        p.add(playButton);
        p.add(resetButton);
        frame.add(p,BorderLayout.SOUTH);
        frame.setVisible(true);
    }

    public void make() {
        frame = new JFrame("Gamer");
        frame.setTitle("Gamer");
        JPanel m = new JPanel(new GridLayout(9, 9));
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                grids[i][j] = new JButton();
                m.add(grids[i][j]);
            }
        }
        frame.add(m, BorderLayout.CENTER);
        frame.setResizable(false);
        frame.pack();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        game gameObj = new game();
    }
}
导入java.awt.BorderLayout;
导入java.awt.GridLayout;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
公开课游戏{
JFrame框架;
JButton grids[][]=新JButton[9][9];
公共游戏(){
make();
JPanel p=新的JPanel();
JButton resetButton=新JButton(“重置”);
JButton playButton=新JButton(“播放”);
p、 添加(播放按钮);
p、 添加(重置按钮);
框架。添加(p,边界布局。南部);
frame.setVisible(true);
}
公开宣布无效{
frame=新JFrame(“玩家”);
frame.setTitle(“玩家”);
JPanel m=新JPanel(新网格布局(9,9));
对于(int i=0;i<9;i++){
对于(int j=0;j<9;j++){
grids[i][j]=新的JButton();
m、 添加(网格[i][j]);
}
}
框架。添加(m,边框布局。中心);
frame.setresizeable(false);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
公共静态void main(字符串[]args){
game gameObj=新游戏();
}
}
其效果是:


除此之外,类名的第一个字母应该大写。

尝试使用frame.add(p,BorderLayout.SOUTH)

这里有一个例子

守则:

import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class game {
    JFrame frame;
    JButton grids[][] = new JButton[9][9];

    public game() {
        make();
        JPanel p = new JPanel();
        JButton resetButton = new JButton("reset");
        JButton playButton = new JButton("Play");
        p.add(playButton);
        p.add(resetButton);
        frame.add(p,BorderLayout.SOUTH);
        frame.setVisible(true);
    }

    public void make() {
        frame = new JFrame("Gamer");
        frame.setTitle("Gamer");
        JPanel m = new JPanel(new GridLayout(9, 9));
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                grids[i][j] = new JButton();
                m.add(grids[i][j]);
            }
        }
        frame.add(m, BorderLayout.CENTER);
        frame.setResizable(false);
        frame.pack();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        game gameObj = new game();
    }
}
导入java.awt.BorderLayout;
导入java.awt.GridLayout;
导入javax.swing.JButton;
感应电动机
 ![enter image description here][1]import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class WelcomActivity {
    JFrame frame;
    JButton resetButton;
    JButton playButton;
    JButton[][] grids = new JButton[9][9];
    int width = 600;
    int heigth = 400;

    public void game() {
        make();
        JPanel p = new JPanel();
        playButton = new JButton("Play");
        resetButton = new JButton("Reset");
        p.add(playButton);
        p.add(resetButton);

        frame.getContentPane().add(p, BorderLayout.EAST);
    }

    public void make() {
        frame = new JFrame("Gamer");

        frame.setTitle("Gamer");
        JPanel m = new JPanel(new GridLayout(9, 9));
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                grids[i][j] = new JButton();
                m.add(grids[i][j]);
            }
        }
        frame.setResizable(false);
        frame.setSize(width, heigth);
        frame.getContentPane().setLayout(new BorderLayout() );
        frame.getContentPane().add(m, BorderLayout.CENTER);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public static void main(String[] args){
        new WelcomActivity().game();
    }
}
frame.add(m, BorderLayout.CENTER);
p.add(playButton, BorderLayout.EAST);
frame.add(p); // adding to the CENTER position