Проблема с заполнением массива компонентами JList - PullRequest
0 голосов
/ 03 апреля 2019

Для контекста я пытаюсь создать копию тральщика.У меня уже есть сетка с уже созданными минами.Теперь я хочу сравнить координаты бомб, которые я сохранил в отдельном списке 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);
            }


        }



    }







    }
} 

только списоквозвращает пустые значения и вот где я застрял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...