0

我试图在java中为扫雷游戏创建一个界面图形,但是当我用JButton绘制gridLayaut时,我希望按钮被卡住,但我无法得到它,并且按钮被分开了。这是我的代码:

    panelTablero.setLayout(new GridLayout(filas, columns,0,0));
    ReceptorBotones recepCelda = new ReceptorBotones();
    for (int x = 0; x < this.filas; x++) {
        for (int y = 0; y < this.columns; y++) {
            BotonCelda b = new BotonCelda(x, y);
            b.addMouseListener(recepCelda);
            panelTablero.add(b);
        }
    }
    panelTablero.revalidate();
    panelTablero.repaint();
    Container cp = getContentPane();
    cp.add(panelTablero, BorderLayout.CENTER);

结果是 在此处输入图像描述

这是完整的方法: private void pintarPanelTablero(NivelJuego pNivel) {

    this.filas = pNivel.get_alto();
    this.columns = pNivel.get_ancho();
    this.minas = pNivel.get_numMinas();
    this.minasRestantes = this.minas;

    // panel de tablero
    switch (nivelJuegoEnCurso) {

// 窗口的大小取决于游戏的关卡 case 1: setBounds(20, 20, 535, 535);

        break;
    case 2:
        setBounds(20, 20, 800, 800);
        break;
    case 3:
        setBounds(20, 20, 1100, 1100);
        break;
    }

    panelTablero.removeAll();

    panelTablero.setLayout(new GridLayout(filas, columns));
    ReceptorBotones recepCelda = new ReceptorBotones();
    for (int x = 0; x < this.filas; x++) {
        for (int y = 0; y < this.columns; y++) {
            BotonCelda b = new BotonCelda(x, y);
            b.setMargin(new Insets(0,0,0,0));
            b.addMouseListener(recepCelda);
            panelTablero.add(b);

        }
    }
    panelTablero.revalidate();
    panelTablero.repaint();
    Container cp = getContentPane();
    cp.add(panelArriba, BorderLayout.NORTH);
    cp.add(panelTablero, BorderLayout.CENTER);

    setVisible(true);
}
4

1 回答 1

0

我用适当的 Hgap 中的负值解决了这个问题。操作系统可能是问题所在。我正在使用 iOS。

panelTablero.setLayout(new GridLayout(filas, columns, -5, -5));

于 2018-05-11T11:54:16.540 回答