Массив из 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); }}
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д