С коллекциями познакомился недавно, поэтому строго не судите.
Нужно сократить запись от дублирования, код начинающий
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 и обычным массив)!