Массив из JPanel - Java

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

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

Скажите могу ли я заполнить массив таким образом и как мне его затем можно вставить в JFrame?
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3.  
  4. public class Activity {
  5. public static void main(String[] args) throws Exception{
  6. final int a=300, b=500;
  7. JPanel[] panels=new JPanel[9];
  8. for(int i=0;i<=9;i++){
  9. panels[i]=new JPanel();
  10. }
  11. JFrame fr=new JFrame();
  12. fr.setTitle("Dots");
  13. fr.setVisible(true);
  14. fr.setSize(a,b);
  15. fr.pack();
  16. JPanel mainPanel=new JPanel();
  17. mainPanel.setBackground(Color.yellow);
  18. mainPanel.setLayout(new GridLayout(3,3));
  19. for(int q=0;q<=panels.length;q++){
  20. mainPanel.add(panels[q]);
  21. }
  22. JButton button= new JButton(">>>");
  23. fr.add(mainPanel);
  24. mainPanel.setLayout(new BorderLayout());
  25. mainPanel.add(button,BorderLayout.SOUTH);
  26. }}

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

textual
Листинг программы
  1. package ru.alexp.tools;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import static javax.swing.JFrame.EXIT_ON_CLOSE;
  6.  
  7.  
  8. public class Activity {
  9.     public static void main(String[] args) throws Exception{
  10.  
  11.         final int a=300, b=500;
  12.  
  13.         JPanel[] panels = new JPanel[9];
  14.         for(int i = 0; i < 9; i++){
  15.             final JPanel dot = new JPanel();
  16.             dot.add(new JLabel("(dotPanel)"));
  17.             panels[i] = dot;
  18.         }
  19.  
  20.         JFrame fr=new JFrame();
  21.         fr.setTitle("Dots");
  22.         fr.setVisible(true);
  23.         fr.setSize(a,b);
  24.         fr.setLocationRelativeTo(null);
  25.         fr.setDefaultCloseOperation(EXIT_ON_CLOSE);
  26.         //fr.pack(); // он тут не нужен
  27.  
  28.         JPanel mainPanel=new JPanel();
  29.         mainPanel.setBackground(Color.yellow);
  30.         mainPanel.setLayout(new GridLayout(3, 3, 5, 5)); // 2 последних значения -- отступы
  31.  
  32.         for(int q = 0; q < panels.length; q++) {
  33.             mainPanel.add(panels[q]);
  34.         }
  35.  
  36.         JButton button = new JButton(">>>");
  37.  
  38.         fr.getContentPane().setLayout(new BorderLayout());
  39.  
  40.         fr.getContentPane().add(button, BorderLayout.SOUTH);
  41.         fr.getContentPane().add(mainPanel, BorderLayout.CENTER);
  42. }}

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут