Добавление кнопок в массив

1

У меня 208 кнопок, и я хочу присвоить их номера, используя массив. Эти кнопки имеют разные изображения поверх них, и я хочу, чтобы они отображались на экране, когда я помещал соответствующий номер, который представляет кнопку на экране. 2D-массив можно игнорировать. Я знаю, что мне нужно избавиться от этого кода и написать код для массива вместо этого, но я не могу понять, что я должен делать.

import java.awt.*;
import java.awt.event.*;

import javax.imageio.ImageIO;
import javax.swing.*;

import java.lang.Object;

public class CBallMaze extends JFrame implements ActionListener
{
    private JButton Jbuttonoption1;
    private JButton Jbuttonoption2;
    private JButton Jbuttonoption3;
    private JButton Jbuttonblank1;
    private JButton Jbuttonup;
    private JButton Jbuttonblank2;
    private JButton Jbuttonleft;
    private JButton Jbuttonblank3;
    private JButton Jbuttonright;
    private JButton Jbuttonblank4;
    private JButton Jbuttondown;
    private JButton Jbuttonblank5;
    private JButton Jbuttonexit;
    private JButton Jbuttonact;
    private Icon iconAct;
    private JButton Jbuttonrun;
    private Icon iconRun;
    private JButton Jbuttonreset;
    private Icon iconReset;
    private Icon iconCompassnorth;
    private Icon iconCompasseast;
    private Icon iconCompasssouth;
    private Icon iconCompasswest;
    private JButton JButtoncompass;
    private JPanel JPanelSouth;
    private JPanel JPanelSouthButtons;
    private JPanel JPanelSouthSlider;
    private JPanel JPaneleast;
    private JPanel JPaneleastoptionbutton;
    private JPanel JPaneleastmiddle;
    private JPanel JPaneleastcompass;
    private JPanel JPaneleasttextfields; 
    private JTextField JTextField1;
    private JLabel JLabelTextField1;
    private JTextField JTextField2;
    private JLabel JLabelTextField2;
    private JTextField JTextField3;
    private JLabel JLabelTextField3;
    private JPanel JPanelnorth;
    private JButton[] JGridButton = new JButton[208];
    private JPanel JPanelnorthwest;
    private JMenuBar JMenuBar1;
    private JMenu scenarioMenu;
    private JMenu editMenu;
    private JMenu controlsMenu;
    private JMenu helpMenu;
    private JMenuItem exitItem;
    private JMenuItem fontItem;
    private JMenuItem foreColor;
    private JMenuItem backColor;
    private JMenuItem helpItem;
    private JMenuItem aboutItem;
    private JSlider JSlider1;
    private JTextField JSliderTextfield;
   /* private ImageIcon[] sandimage = new ImageIcon[1];
    private ImageIcon[] whiteimage = new ImageIcon[2];
    private ImageIcon[] goldenball = new ImageIcon[4];
    private ImageIcon[] sandstone = new ImageIcon[3];*/
    private Icon sandimage;
    private Icon whiteimage;
    private Icon goldenball;
    private Icon sandstone;
    private Icon greenfoot;

    private int nPosition = 15;

   /* int [][] map1 = {  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4},
                      {2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2},
                      {2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2},
                      {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                      {2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2},
                      {2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2},
                      {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                      {2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2},
                      {2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2},
                      {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                      {2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2},
                      {2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2},
                      {3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} };*/

    int [] map1 = {  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
                     2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
                     2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
                     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                     2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
                     2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
                     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                     2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
                     2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
                     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                     2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
                     2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
                     3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };

    public static void main(String[] args)
    {

        CBallMaze frame = new CBallMaze();
        frame.setIconImage(Toolkit.getDefaultToolkit().getImage("res/greenfoot.jpg"));
        frame.setTitle("CBallMaze");
        frame.setSize(775, 650);
        frame.createGUI();
        frame.setVisible(true);
        JMenuBar menuBar1 = new JMenuBar();

        try
        {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }
        catch (Exception e)
        {
            System.err.println("Couldn't use the system "+"look and feel: "+e);
        }

        JMenu fileMenu = new JMenu("Scenario");
        fileMenu.setMnemonic(KeyEvent.VK_F);
        menuBar1.add(fileMenu);

        JMenu fileMenu0 = new JMenu("Edit");
        fileMenu0.setMnemonic(KeyEvent.VK_F);
        menuBar1.add(fileMenu0);

        JMenu fileMenu1 = new JMenu("Controls");
        fileMenu1.setMnemonic(KeyEvent.VK_F);
        menuBar1.add(fileMenu1);

        JMenu fileMenu2 = new JMenu("Help");
        fileMenu2.setMnemonic(KeyEvent.VK_F);
        menuBar1.add(fileMenu2);

        frame.setJMenuBar(menuBar1);
        frame.setSize(775,650);
        frame.setVisible(true);


    }


    private void createGUI()
    {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        Container window = getContentPane();
        window.setLayout(new BorderLayout() );
        centreWindow();

        JPanelnorth = new JPanel();
        JPanelnorth.setPreferredSize(new Dimension(630, 600));
        JPanelnorth.setBackground(Color.white);
        JPanelnorth.setLayout(new GridLayout(13,16));
        window.add(JPanelnorth,BorderLayout.CENTER);

        try 
        {
            iconAct = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/Act.jpg")));
            iconRun = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/Run.jpg")));
            iconReset = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/Reset.jpg")));
            iconCompassnorth = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/north.jpg")));
            iconCompasseast = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/east.jpg")));
            iconCompasssouth = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/south.jpg")));
            iconCompasswest = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/west.jpg")));
            sandimage = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/sand.jpg")));
            whiteimage = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/white32x32.jpg")));
            goldenball = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/sand60x60.png")));
            sandstone = new ImageIcon(Toolkit.getDefaultToolkit().createImage(CBallMaze.class.getResource("images/sandstone.jpg")));
        }
        catch (Exception e)
        {
            System.err.println("Baby Icon ImageIcon "+e);
        } 


        for( int nCount= 0; nCount < 208; nCount++ )
        {
            JGridButton[nCount] = new JButton(""); 
            JPanelnorth.add(JGridButton[nCount]);
            JGridButton[nCount].setBorderPainted(false);
            if((nCount >= 0 && nCount<=15) 
                    || (nCount >= 48 && nCount <= 63)
                    || (nCount >= 96 && nCount <= 111)
                    || (nCount >= 144 && nCount <= 159)
                    || (nCount >= 193 && nCount <= 208)
                    || (nCount == 17) || (nCount == 33)
                    || (nCount == 21) || (nCount == 37)
                    || (nCount == 25) || (nCount == 41)
                    || (nCount == 66) || (nCount == 82)
                    || (nCount == 70) || (nCount == 86)
                    || (nCount == 75) || (nCount == 91)
                    || (nCount == 113) || (nCount == 129)
                    || (nCount == 117) || (nCount == 133)
                    || (nCount == 124) || (nCount == 140)
                    || (nCount == 162) || (nCount == 178)
                    || (nCount == 166) || (nCount == 182)

                    )
            {
                JGridButton[nCount].setIcon(sandimage);
            }
            else 
            {
                JGridButton[nCount].setBackground(Color.white);
            }
            if(nCount == 192)
            {
                JGridButton[nCount].setIcon(sandstone);
            }
            if(nCount == 15)
            {
                JGridButton[nCount].setIcon(goldenball);
            }

        }


        JPaneleast = new JPanel();
        JPaneleast.setPreferredSize(new Dimension(145, 600));
        JPaneleast.setBackground(Color.lightGray);
        window.add(JPaneleast,BorderLayout.EAST);

        JPanelSouth = new JPanel();
        JPanelSouth.setPreferredSize(new Dimension(705, 50));
        JPanelSouth.setBackground(Color.lightGray);
        window.add(JPanelSouth,BorderLayout.SOUTH);


        JPaneleasttextfields = new JPanel();
        JPaneleasttextfields.setPreferredSize(new Dimension(145,100));
        JPaneleasttextfields.setBackground(Color.lightGray);
        JPaneleasttextfields.setLayout(new GridLayout(3,2));
        JPaneleast.add(JPaneleasttextfields);

        JLabelTextField1 = new JLabel("Option:");
        JLabelTextField1.setPreferredSize(new Dimension(65,33));
        JPaneleasttextfields.add(JLabelTextField1);

        JTextField1 = new JTextField();
        JTextField1.setPreferredSize(new Dimension(80 ,33));
        JPaneleasttextfields.add(JTextField1);

        JLabelTextField2 = new JLabel("Square:");
        JLabelTextField2.setPreferredSize(new Dimension(65,33));
        JPaneleasttextfields.add(JLabelTextField2);

        JTextField2 = new JTextField();
        JTextField2.setPreferredSize(new Dimension(80 ,33));
        JPaneleasttextfields.add(JTextField2);

        JLabelTextField3 = new JLabel("Direction:");
        JLabelTextField3.setPreferredSize(new Dimension(65,33));
        JPaneleasttextfields.add(JLabelTextField3);

        JTextField3 = new JTextField();
        JTextField3.setPreferredSize(new Dimension(80 ,33));
        JPaneleasttextfields.add(JTextField3);

        JPaneleastmiddle = new JPanel();
        JPaneleastmiddle.setPreferredSize(new Dimension(160, 100));
        JPaneleastmiddle.setBackground(Color.gray);
        JPaneleastmiddle.setLayout(new GridLayout(3,3) );
        window.add(JPaneleastmiddle,BorderLayout.NORTH);
        JPaneleast.add(JPaneleastmiddle); 

        Jbuttonblank1 = new JButton("");
        JPaneleastmiddle.add(Jbuttonblank1);
        Jbuttonblank1.addActionListener(this);
        Jbuttonblank1.setPreferredSize(new Dimension(80, 30));
        Jbuttonblank1.setEnabled(false);

        Jbuttonup = new JButton("^");
        JPaneleastmiddle.add(Jbuttonup);
        Jbuttonup.addActionListener(this);
        Jbuttonup.setPreferredSize(new Dimension(80, 30));

        Jbuttonblank2 = new JButton("");
        JPaneleastmiddle.add(Jbuttonblank2);
        Jbuttonblank2.addActionListener(this);
        Jbuttonblank2.setPreferredSize(new Dimension(80, 30));
        Jbuttonblank2.setEnabled(false);

        Jbuttonleft = new JButton("<");
        JPaneleastmiddle.add(Jbuttonleft);
        Jbuttonleft.addActionListener(this);
        Jbuttonleft.setPreferredSize(new Dimension(80, 30));

        Jbuttonblank3 = new JButton("");
        JPaneleastmiddle.add(Jbuttonblank3);
        Jbuttonblank3.addActionListener(this);
        Jbuttonblank3.setPreferredSize(new Dimension(80, 30));
        Jbuttonblank3.setEnabled(false);

        Jbuttonright = new JButton(">");
        JPaneleastmiddle.add(Jbuttonright);
        Jbuttonright.addActionListener(this);
        Jbuttonright.setPreferredSize(new Dimension(80, 30));

        Jbuttonblank4 = new JButton("");
        JPaneleastmiddle.add(Jbuttonblank4);
        Jbuttonblank4.addActionListener(this);
        Jbuttonblank4.setPreferredSize(new Dimension(80, 30));
        Jbuttonblank4.setEnabled(false);

        Jbuttondown = new JButton("v");
        JPaneleastmiddle.add(Jbuttondown);
        Jbuttondown.addActionListener(this);
        Jbuttondown.setPreferredSize(new Dimension(80, 30));

        Jbuttonblank5 = new JButton("");
        JPaneleastmiddle.add(Jbuttonblank5);
        Jbuttonblank5.addActionListener(this);
        Jbuttonblank5.setPreferredSize(new Dimension(80, 30));
        Jbuttonblank5.setEnabled(false);

        JPaneleastoptionbutton = new JPanel();
        JPaneleastoptionbutton.setPreferredSize(new Dimension(160, 60));
        JPaneleastoptionbutton.setBackground(Color.gray);
        JPaneleastoptionbutton.setLayout(new GridLayout(2,2) );
        JPaneleast.add(JPaneleastoptionbutton);

        Jbuttonoption1 = new JButton("Option1");
        JPaneleastoptionbutton.add(Jbuttonoption1);
        Jbuttonoption1.addActionListener(this);
        Jbuttonoption1.setPreferredSize(new Dimension(80, 30));

        Jbuttonoption2 = new JButton("Option2");
        JPaneleastoptionbutton.add(Jbuttonoption2);
        Jbuttonoption2.addActionListener(this);
        Jbuttonoption2.setPreferredSize(new Dimension(80, 30));

        Jbuttonoption3 = new JButton("Option3");
        JPaneleastoptionbutton.add(Jbuttonoption3);
        Jbuttonoption3.addActionListener(this);
        Jbuttonoption3.setPreferredSize(new Dimension(80, 30));

        Jbuttonexit = new JButton("Exit");
        JPaneleastoptionbutton.add(Jbuttonexit);
        Jbuttonexit.addActionListener(this);
        Jbuttonexit.setPreferredSize(new Dimension(80, 30));

        JPaneleastcompass = new JPanel();
        JPaneleastcompass.setPreferredSize(new Dimension(100,100));
        JPaneleastcompass.setBackground(Color.lightGray);
        JPaneleast.add(JPaneleastcompass);


        JPanelSouthButtons = new JPanel();
        JPanelSouthButtons.setPreferredSize(new Dimension(270, 30));
        JPanelSouthButtons.setBackground(Color.gray);
        JPanelSouthButtons.setLayout(new GridLayout(1,3) );
        JPanelSouth.add(JPanelSouthButtons);

        Jbuttonact = new JButton("Act");
        JPanelSouthButtons.add(Jbuttonact);
        Jbuttonact.setIcon(iconAct);
        Jbuttonact.addActionListener(this);
        Jbuttonact.setPreferredSize(new Dimension(40, 30));

        Jbuttonrun = new JButton("Run");
        JPanelSouthButtons.add(Jbuttonrun);
        Jbuttonrun.setIcon(iconRun);
        Jbuttonrun.addActionListener(this);
        Jbuttonrun.setPreferredSize(new Dimension(40, 30));


        Jbuttonreset = new JButton("Reset");
        JPanelSouthButtons.add(Jbuttonreset);
        Jbuttonreset.setIcon(iconReset);
        Jbuttonreset.addActionListener(this);
        Jbuttonreset.setPreferredSize(new Dimension(40, 30));


        JPanelSouthSlider = new JPanel();
        JPanelSouthSlider.setPreferredSize(new Dimension(200, 30));
        JPanelSouthSlider.setBackground(Color.BLUE);
        JPanelSouthSlider.setLayout(new GridLayout(1,3));
        JPanelSouth.add(JPanelSouthSlider);

        JSlider1 = new JSlider(JSlider.HORIZONTAL,200,2000,1000);
        JSlider1.setPreferredSize(new Dimension(200, 30));
        JPanelSouthSlider.add(JSlider1);

        JButtoncompass = new JButton();
        JPaneleastcompass.add(JButtoncompass);
        JButtoncompass.setPreferredSize(new Dimension(100,100));
        JButtoncompass.setIcon(iconCompassnorth);


    }

    public void centreWindow()
    {    
      Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
      Dimension frameSize = getSize();
      if (frameSize.height > screenSize.height)
      {
        frameSize.height = screenSize.height;
      }
      if (frameSize.width > screenSize.width)
      {
        frameSize.width = screenSize.width;
      }
      setLocation((screenSize.width - frameSize.width) / 2, 
                  (screenSize.height - frameSize.height) / 2);
     }

    public void gameEnd()
    {
        if(nPosition == 193)
        {   

        }
        else
        {

        }
    }

    public void Option1()
    {
        JTextField1.setText("Option1");
    }

    public void Option2()
    {
        JTextField1.setText("Option2");
    }

    public void Option3()
    {
        JTextField1.setText("Option3");
    }
    public void actionPerformed(ActionEvent event)
    {
        Object source = event.getSource();
        gameEnd();

        if(source == Jbuttonoption1)
        {
            Option1();
        }

        if(source == Jbuttonoption2)
        {
            Option2();
        }

        if(source == Jbuttonoption3)
        {
            Option3();
        }

        if(source == Jbuttonup)
        {
            JButtoncompass.setIcon(iconCompassnorth);
            JTextField3.setText("N");
            JGridButton[nPosition -16].setIcon(goldenball);
            JGridButton[nPosition].setIcon(sandimage);
            //JTextField2.set
            nPosition = nPosition -16;
        }

        if(source == Jbuttonright)
        {
            JButtoncompass.setIcon(iconCompasseast);
            JTextField3.setText("E");
            JGridButton[nPosition +1].setIcon(goldenball);
            JGridButton[nPosition].setIcon(sandimage);
            nPosition = nPosition +1;
        }

        if(source == Jbuttondown)
        {
            JButtoncompass.setIcon(iconCompasssouth);
            JTextField3.setText("S");
            JGridButton[nPosition +16].setIcon(goldenball);
            JGridButton[nPosition].setIcon(sandimage);
            nPosition = nPosition +16;
        }

        if(source == Jbuttonleft)
        {
            if(nPosition <= 0)
            {

            }
            else{
            JButtoncompass.setIcon(iconCompasswest);
            JTextField3.setText("W");
            JGridButton[nPosition -1].setIcon(goldenball);
            JGridButton[nPosition].setIcon(sandimage);
            nPosition = nPosition -1;}

        }

        if(source == Jbuttonoption1)
        {

        }

        if(source == Jbuttonoption2)
        {

        }

        if(source == Jbuttonoption3)
        {

        }

        if(source == Jbuttonexit)
        {
            System.exit(EXIT_ON_CLOSE);
        }
    }
}





for( int nCount= 0; nCount < 208; nCount++ )
        {
            JGridButton[nCount] = new JButton(""); 
            JPanelnorth.add(JGridButton[nCount]);
            JGridButton[nCount].setBorderPainted(false);
            if((nCount >= 0 && nCount<=15) 
                    || (nCount >= 48 && nCount <= 63)
                    || (nCount >= 96 && nCount <= 111)
                    || (nCount >= 144 && nCount <= 159)
                    || (nCount >= 193 && nCount <= 208)
                    || (nCount == 17) || (nCount == 33)
                    || (nCount == 21) || (nCount == 37)
                    || (nCount == 25) || (nCount == 41)
                    || (nCount == 66) || (nCount == 82)
                    || (nCount == 70) || (nCount == 86)
                    || (nCount == 75) || (nCount == 91)
                    || (nCount == 113) || (nCount == 129)
                    || (nCount == 117) || (nCount == 133)
                    || (nCount == 124) || (nCount == 140)
                    || (nCount == 162) || (nCount == 178)
                    || (nCount == 166) || (nCount == 182)

                    )
            {
                JGridButton[nCount].setIcon(sandimage);
            }
            else 
            {
                JGridButton[nCount].setBackground(Color.white);
            }
            if(nCount == 192)
            {
                JGridButton[nCount].setIcon(sandstone);
            }
            if(nCount == 15)
            {
                JGridButton[nCount].setIcon(goldenball);
            }

        }

Я должен удалить этот код, я думаю, и заменить его на другой код для массива.

if((nCount >= 0 && nCount<=15) 
                        || (nCount >= 48 && nCount <= 63)
                        || (nCount >= 96 && nCount <= 111)
                        || (nCount >= 144 && nCount <= 159)
                        || (nCount >= 193 && nCount <= 208)
                        || (nCount == 17) || (nCount == 33)
                        || (nCount == 21) || (nCount == 37)
                        || (nCount == 25) || (nCount == 41)
                        || (nCount == 66) || (nCount == 82)
                        || (nCount == 70) || (nCount == 86)
                        || (nCount == 75) || (nCount == 91)
                        || (nCount == 113) || (nCount == 129)
                        || (nCount == 117) || (nCount == 133)
                        || (nCount == 124) || (nCount == 140)
                        || (nCount == 162) || (nCount == 178)
                        || (nCount == 166) || (nCount == 182)

                        )
  • 0
    Пожалуйста, уточните свой вопрос - что именно вы пытаетесь сделать? Где ты застрял?
  • 1
    Почему бы не использовать одну кнопку и динамически менять заголовок / действие?
Теги:
arrays
swing

1 ответ

1
Лучший ответ

Похоже, вы хотите создать сетку изображений, удерживаемых кнопками. Если это так, то просто создайте свой двумерный массив JButton, не давайте имена кнопок и не создавайте JButtons в цикле for, добавляя их в массив и в GridLayout-используя JPanel одновременно. Затем вы можете использовать одну и ту же сетку для назначения ImageIcons для каждой кнопки.

Ваша карта должна храниться текстовым файлом, а не жестко закодированным в вашем коде, и вы можете прочитать карту в своем собственном 2D-массиве и использовать ее в качестве основы для создания и итерации через сетку кнопок.

например,

  // first read in the text file and fill the map 2D int array

  for (int row = 0; row < btnGrid.length; row++) {
     for (int col = 0; col < btnGrid[row].length; col++) {
        int value = map[row][col]; // holds value for icons array
        Icon icon = icons[value]; // an array of ImageIcons
        btnGrid[row][col] = new JButton(icon);
        btnGrid[row][col].addActionListener(someListener);
        btnPanel.add(btnGrid[row][col]);
     }
  }

В JButton Action или ActionListener (здесь отмечено как someListener) вы измените состояние кнопки, возможно, ее значок, на нажатие кнопки, в зависимости от ваших потребностей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню