Java 随机更改数组中JButtons的背景?
我目前正在尝试创建一个战舰游戏。我遇到的问题是,当我选择“随机化”按钮时,我希望它将船只放置在网格的随机部分 例如,运输船将覆盖阵列中的5个按钮。如何在阵列中随机选择5个相邻的JButtonJava 随机更改数组中JButtons的背景?,java,swing,Java,Swing,我目前正在尝试创建一个战舰游戏。我遇到的问题是,当我选择“随机化”按钮时,我希望它将船只放置在网格的随机部分 例如,运输船将覆盖阵列中的5个按钮。如何在阵列中随机选择5个相邻的JButton import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.MouseAdapter; import java.awt
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.util.Random;
public class View
{
private JFrame frame;
private JPanel panel1;
private JPanel panel2;
private JButton grid1[][];
private JButton randomize;
private String[] alphabet = { "", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" };
private String[] numbers = { "", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
public View()
{
configureFrame();
configurePanels();
configureComponents();
frame.setVisible(true);
}
private void configureFrame()
{
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(900, 600);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
}
private void configurePanels()
{
panel1 = new JPanel();
panel1.setLayout(new GridLayout(11, 11));
frame.getContentPane().add(panel1, BorderLayout.WEST);
panel2 = new JPanel();
panel2.setSize(frame.getWidth(), frame.getHeight());
panel2.setLayout(null);
frame.getContentPane().add(panel2);
}
private void configureComponents()
{
grid1 = new JButton[11][11];
for(int i = 0; i < grid1.length; i++)
{
for(int j = 0; j < grid1[i].length; j++)
{
grid1[i][j] = new JButton();
panel1.add(grid1[i][j]);
}
}
for(int i = 0; i < alphabet.length && i < numbers.length; i++)
{
grid1[0][i].setText(alphabet[i]);
grid1[i][0].setText(numbers[i]);
grid1[0][i].setFont(new Font("Tahoma", Font.BOLD, 19));
grid1[i][0].setFont(new Font("Tahoma", Font.BOLD, 19));
grid1[0][i].setEnabled(false);
grid1[i][0].setEnabled(false);
grid1[0][i].setBackground(Color.BLACK);
grid1[i][0].setBackground(Color.BLACK);
}
grid1[0][0].setBackground(Color.BLACK);
randomize = new JButton("Randomize");
randomize.setLocation(50, 65);
randomize.setSize(100, 50);
randomize.setFocusPainted(false);
randomize.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
/*
Want to randomly put the carrier on the grid somewhere
grid1[2][3].setBackground(Color.LIGHT_GRAY);
grid1[3][3].setBackground(Color.LIGHT_GRAY);
grid1[4][3].setBackground(Color.LIGHT_GRAY);
grid1[5][3].setBackground(Color.LIGHT_GRAY);
grid1[6][3].setBackground(Color.LIGHT_GRAY);
*/
}
});
panel2.add(randomize);
}
}
导入java.awt.BorderLayout;
导入java.awt.Color;
导入java.awt.Font;
导入java.awt.GridLayout;
导入java.awt.event.MouseAdapter;
导入java.awt.event.MouseEvent;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
导入javax.swing.JButton;
导入java.util.Random;
公共阶级观
{
私有JFrame;
私人JPanel小组1;
私人JPanel小组2;
私有JButton grid1[][];
私有按钮随机化;
私有字符串[]字母={”、“A”、“B”、“C”、“D”、“E”、“F”、“G”、“H”、“I”、“J”};
私有字符串[]数字={”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”};
公众观点()
{
配置框架();
配置面板();
配置组件();
frame.setVisible(true);
}
私有void配置框架()
{
frame=新的JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
框架。设置尺寸(900600);
frame.setresizeable(false);
frame.setLocationRelativeTo(空);
}
专用void配置面板()
{
panel1=新的JPanel();
面板1.设置布局(新网格布局(11,11));
frame.getContentPane().add(panel1,BorderLayout.WEST);
panel2=新的JPanel();
panel2.setSize(frame.getWidth(),frame.getHeight());
panel2.setLayout(空);
frame.getContentPane().add(panel2);
}
私有void配置组件()
{
grid1=新的JButton[11][11];
for(int i=0;i
我对Java非常陌生,所以如果我没有任何意义,我会提前道歉
如何在阵列中随机选择5个相邻的JButton
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.util.Random;
public class View
{
private JFrame frame;
private JPanel panel1;
private JPanel panel2;
private JButton grid1[][];
private JButton randomize;
private String[] alphabet = { "", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" };
private String[] numbers = { "", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
public View()
{
configureFrame();
configurePanels();
configureComponents();
frame.setVisible(true);
}
private void configureFrame()
{
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(900, 600);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
}
private void configurePanels()
{
panel1 = new JPanel();
panel1.setLayout(new GridLayout(11, 11));
frame.getContentPane().add(panel1, BorderLayout.WEST);
panel2 = new JPanel();
panel2.setSize(frame.getWidth(), frame.getHeight());
panel2.setLayout(null);
frame.getContentPane().add(panel2);
}
private void configureComponents()
{
grid1 = new JButton[11][11];
for(int i = 0; i < grid1.length; i++)
{
for(int j = 0; j < grid1[i].length; j++)
{
grid1[i][j] = new JButton();
panel1.add(grid1[i][j]);
}
}
for(int i = 0; i < alphabet.length && i < numbers.length; i++)
{
grid1[0][i].setText(alphabet[i]);
grid1[i][0].setText(numbers[i]);
grid1[0][i].setFont(new Font("Tahoma", Font.BOLD, 19));
grid1[i][0].setFont(new Font("Tahoma", Font.BOLD, 19));
grid1[0][i].setEnabled(false);
grid1[i][0].setEnabled(false);
grid1[0][i].setBackground(Color.BLACK);
grid1[i][0].setBackground(Color.BLACK);
}
grid1[0][0].setBackground(Color.BLACK);
randomize = new JButton("Randomize");
randomize.setLocation(50, 65);
randomize.setSize(100, 50);
randomize.setFocusPainted(false);
randomize.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
/*
Want to randomly put the carrier on the grid somewhere
grid1[2][3].setBackground(Color.LIGHT_GRAY);
grid1[3][3].setBackground(Color.LIGHT_GRAY);
grid1[4][3].setBackground(Color.LIGHT_GRAY);
grid1[5][3].setBackground(Color.LIGHT_GRAY);
grid1[6][3].setBackground(Color.LIGHT_GRAY);
*/
}
});
panel2.add(randomize);
}
}