@tibirlayn
студент

Как добавить в ArrayList ссылку?

С коллекциями познакомился недавно, поэтому строго не судите.
Нужно сократить запись от дублирования, код начинающий
name1= new JPanel();
name1.setPreferredSize(new Dimension(900, 900)); и т.д.

Пытался записать в ArrayList ссылки JPanel и создать все панели одним циклом.
Всю помойку облазил, находил интересные посты, пытался по кусочкам собрать, но что-то пошло не по плану!)

Нужно создать с помощью ArrayList массив, который будет хранить в себе ссылки (private JPanel name1, name2, name3, name4, name5, name6, name7; ) и они потом будут вызываться в цикле, чтобы создать объект
name1= new JPanel();
name1.setPreferredSize(new Dimension(900, 900));

чтобы мне не писать в этот
name1= new JPanel();
name1.setPreferredSize(new Dimension(900, 900));
name2= new JPanel();
name2.setPreferredSize(new Dimension(900, 900));
name3= new JPanel();
name3.setPreferredSize(new Dimension(900, 900));
name4= new JPanel();
name4.setPreferredSize(new Dimension(900, 900));
name5= new JPanel();
name5.setPreferredSize(new Dimension(900, 900));
name6= new JPanel();
name6.setPreferredSize(new Dimension(900, 900));
name7= new JPanel();
name7.setPreferredSize(new Dimension(900, 900));

Как выглядит сейчас!
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;

public class Itibandr extends JFrame {
    private JPanel name1, name2, name3, name4, name5, name6, name7;

    public static void main(String[] args) {
        new Itibandr();
    }
        private Itibandr() {
            initPanel();
            initFrame();
            initMenuBar();
        }

        private void initPanel() {

            name1= new JPanel();
            name1.setPreferredSize(new Dimension(900, 900));
            name2= new JPanel();
            name2.setPreferredSize(new Dimension(900, 900));
            name3= new JPanel();
            name3.setPreferredSize(new Dimension(900, 900));
            name4= new JPanel();
            name4.setPreferredSize(new Dimension(900, 900));
            name5= new JPanel();
            name5.setPreferredSize(new Dimension(900, 900));
            name6= new JPanel();
            name6.setPreferredSize(new Dimension(900, 900));
            name7= new JPanel();
            name7.setPreferredSize(new Dimension(900, 900));
}


Как должно быть примерно
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;

public class Itibandr extends JFrame {
    ArrayList<Object> arrayPanel = new ArrayList<Object>();
    arrayPanel.add(name1, name2, name3, name4, name5, name6, name7); // я знаю, что так объявлять нельзя!

    public static void main(String[] args) {
        new Itibandr();
    }
        private Itibandr() {
            initPanel();
            initFrame();
            initMenuBar();
        }

        private void initPanel() {
           // примерно написал!!
           for (arrayPanel  name: arrayPanel) {
           name = new JPanel();
           name.setPreferredSize(new Dimension(900, 900));
           }
}


Другие варианты не рассматриваю (Enum и обычным массив)!
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 1
@onepavel
Консультация и разработка мобильных приложений
ArrayList<Object> arrayPanel = new ArrayList<Object>();
for (int x =0; x<n; x++) {
    JPanel name = new JPanel();
    name.setPreferredSize(new Dimension(900, 900));
    arrayPanel.add(name);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект