Массив из JPanel - Java

Узнай цену своей работы

Формулировка задачи:

Скажите могу ли я заполнить массив таким образом и как мне его затем можно вставить в JFrame?
import javax.swing.*;
import java.awt.*;

public class Activity {
    public static void main(String[] args) throws Exception{
 
        final int a=300, b=500;
 
        JPanel[] panels=new JPanel[9];
        for(int i=0;i<=9;i++){
            panels[i]=new JPanel();
        }
 
        JFrame fr=new JFrame();
        fr.setTitle("Dots");
        fr.setVisible(true);
        fr.setSize(a,b);
        fr.pack();
 
        JPanel mainPanel=new JPanel();
        mainPanel.setBackground(Color.yellow);
        mainPanel.setLayout(new GridLayout(3,3));
 
        for(int q=0;q<=panels.length;q++){
            mainPanel.add(panels[q]);
        }
 
        JButton button= new JButton(">>>");
 
        fr.add(mainPanel);
        mainPanel.setLayout(new BorderLayout());
 
        mainPanel.add(button,BorderLayout.SOUTH);
}}

Решение задачи: «Массив из JPanel»

textual
Листинг программы
package ru.alexp.tools;
 
import javax.swing.*;
import java.awt.*;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
 
 
public class Activity {
    public static void main(String[] args) throws Exception{
 
        final int a=300, b=500;
 
        JPanel[] panels = new JPanel[9];
        for(int i = 0; i < 9; i++){
            final JPanel dot = new JPanel();
            dot.add(new JLabel("(dotPanel)"));
            panels[i] = dot;
        }
 
        JFrame fr=new JFrame();
        fr.setTitle("Dots");
        fr.setVisible(true);
        fr.setSize(a,b);
        fr.setLocationRelativeTo(null);
        fr.setDefaultCloseOperation(EXIT_ON_CLOSE);
        //fr.pack(); // он тут не нужен
 
        JPanel mainPanel=new JPanel();
        mainPanel.setBackground(Color.yellow);
        mainPanel.setLayout(new GridLayout(3, 3, 5, 5)); // 2 последних значения -- отступы
 
        for(int q = 0; q < panels.length; q++) {
            mainPanel.add(panels[q]);
        }
 
        JButton button = new JButton(">>>");
 
        fr.getContentPane().setLayout(new BorderLayout());
 
        fr.getContentPane().add(button, BorderLayout.SOUTH);
        fr.getContentPane().add(mainPanel, BorderLayout.CENTER);
}}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5