有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jframe用java绘制游戏板

我引用了这个链接,但这并不能最终解决我的问题(即我从别人的计算机上运行我的程序)How to deal with "java.lang.OutOfMemoryError: Java heap space" error (64MB heap size)。现在,我有一个游戏板,有10x10个方块,但我需要将其增加到100x100,但当我这样做时,我得到了这个错误。在避免这个错误的同时,增加游戏板大小的最佳方法是什么?当前输出如下,代码应该编译并运行。谢谢

enter image description here

游戏板类:

import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
import javax.swing.border.*;

public class GameBoard {

private final JPanel board = new JPanel(new BorderLayout(3, 3));
private JButton[][] c1squares = new JButton[10][10];
private JPanel c1Board, c2Board;
private final JLabel messagec1 = new JLabel("Player 1 Board");
JToolBar tool = new JToolBar();
Insets Margin = new Insets(0,0,0,0);
int squares = 10;
int space = 100;
ImageIcon icon = new ImageIcon(new BufferedImage(space, space, BufferedImage.TYPE_INT_ARGB));

GameBoard() {
    initializeGui();
}

public final void initializeGui() {

    board.setBorder(new EmptyBorder(5, 5, 5, 5));
    tool.setFloatable(false);
    board.add(tool, BorderLayout.PAGE_START);
    tool.add(messagec1);
    c1Board = new JPanel(new GridLayout(0, 10));
    c1Board.setBorder(new LineBorder(Color.BLACK));
    board.add(c1Board);

    for (int i = 1; i < c1squares.length; i++) {
        for (int j = 0; j < c1squares[i].length; j++) {
            JButton b = new JButton();
            b.setMargin(Margin);              
            b.setIcon(icon);
            if ((j % 2 == 1 && i % 2 == 1) || (j % 2 == 0 && i % 2 == 0)) {
                b.setBackground(Color.WHITE);
            } else {
                b.setBackground(Color.BLACK);
            }
            c1squares[j][i] = b;
        }
    } 
    for (int i = 1; i < squares; i++) {
        for (int j = 0; j < squares; j++) {     
                    c1Board.add(c1squares[j][i]);      
        }
    } 
public final JComponent getGui() {
    return board;
}
public final JComponent getGui2() {
    return board2;
}
}

战舰最后一级:

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;

public class BattleshipFinal {

public static void main(String[] args) {

    GameBoard gb = new GameBoard();
    JFrame frame = new JFrame("Battleship - Server");
    frame.add(gb.getGui());
    frame.setLocationByPlatform(true);
    frame.setMinimumSize(frame.getSize());
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    frame.setPreferredSize(new Dimension(900,900));
    frame.setMinimumSize(new Dimension(900,900));
    frame.setLocation(50,50);
    frame.pack();
    frame.setVisible(true);

}

}

共 (0) 个答案