Для контекста я пытаюсь создать копию тральщика.У меня уже есть сетка с уже созданными минами.Теперь я хочу сравнить координаты бомб, которые я сохранил в отдельном списке JList, с координатами каждой пустой ячейки, чтобы проверить на близость (так что если одна бомба находится рядом, печатается число 1 и так далее, если выиграл в тральщика вы понимаете о чем я)В любом случае, мне просто нужно сравнить этот JList с массивом 2d, в котором хранятся все значения (или координаты) JLabels, которые у меня есть, которые представляют каждую плитку (обычную или бомбу).Я пытался поместить координаты бомб из JList в массив данных, так как считал, что будет проще сравнить два типа данных, но когда я это сделал, массив вернул только пустые значения.
public class initMineField extends JFrame {
DefaultListModel<Integer> listModel = new DefaultListModel<>(); //The JList I want to compare
JList<Integer> intJList = new JList<>(listModel);
public int rows=1000;
public int cols=750;
public int i = 0;
public int j = 0;
public initMineField(){
JPanel panel = new JPanel();
getContentPane().add(panel);
JFrame window = new JFrame();
window.setSize(1015,885);
window.setVisible(true);
window.setTitle("MineSweeper2");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().setLayout(null);
panel.setBounds(0,100,rows,cols);
//window.setResizable(false);
window.add(panel);
List<Integer> list = new ArrayList<Integer>();
int inds []= intJList.getSelectedIndices();
for(int i = 0 ; i < inds.length;i++) //Main focus is here
{
list.add((Integer) (intJList.getModel().getElementAt(inds[i])));
}
JPanel Grid[][] = new JPanel[rows][cols]; //The 2D array I want to compare
for ( i = 0; i< Grid.length; i += 50) {
for(j = 0; j < Grid[i].length; j+= 50) {
int v = (int) (Math.random() * 15); //decides if tiles are bomb/tile not of concern
ImageIcon icon = new ImageIcon("download2a.fw.png");
JLabel label = new JLabel(icon);
ImageIcon icon2 = new ImageIcon("download1.fw.jpg");
JLabel bomb = new JLabel(icon2);
Grid[i][j]= new JPanel(new GridLayout(rows,cols));
panel.setLayout(null);
Image image = icon.getImage(); //ignore these lines
Image newimg = image.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
icon = new ImageIcon(newimg);
label.setIcon(icon);
Image image2 = icon2.getImage(); //ignore
Image newimg2 = image2.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
icon2 = new ImageIcon(newimg2);
bomb.setIcon(icon2);
if( v <= 10) { //The Jlabel for regular tiles
label.setBounds(i,j,50,50);
panel.add(label);
}
else { //The Jlabel for bombs
bomb.setBounds(i,j,50,50);
panel.add(bomb);
listModel.addElement(i);
listModel.addElement(j);
}
if(Grid[i][j] != list) { //I'm trying to isolate the blank tiles on this line
System.out.println(list);
}
}
}
}
}
только списоквозвращает пустые значения и вот где я застрял.