Q:

Не добавляется панель на форму

    public class Main   {
        public static void main(String[]args) {
        Window window = new Window();
        window.initializeFrame();
        PanelPhone panelPhone = new PanelPhone();
        panelPhone.initializePanelPhone();
        window.add(panelPhone);

        }
    }

import javax.swing.*;
import javax.swing.border.EtchedBorder;
import java.awt.*;

public class PanelPhone extends JPanel  {

    JPanel panel;

    public PanelPhone() {
        panel = new JPanel();
        panel.setVisible(true);
    }

    void initializePanelPhone() {
        panel.setLayout(null);
        panel.setBorder(new EtchedBorder());
        panel.setBackground(Color.GRAY);
        panel.setLocation(20, 20);
        panel.setSize(300,200);
        add(panel);

    }
}

    import javax.swing.*;
    import java.awt.*;

    public class Window  extends Frame {
        private JFrame frame;

        public Window(){
             frame = new JFrame("Phone");
             frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
             frame.setVisible(true);
        }

        public void initializeFrame() {
            frame.setSize(new Dimension(1000 ,900));
            frame.setLocationRelativeTo(null);
            frame.setLayout(null);

        }

    }

A:

Проблема была в том, что панель отображалась раньше, чем получала параметры - т.е. вы отображали пустую панель без бекграунда, и размеров  
    PanelPhone panelPhone = new PanelPhone();//вызыван конструктор, а в нем setVisible()
    panelPhone.initializePanelPhone();//а настройки идут вторым номером - так не сработает

Как сработает (запускабельно):  
public class Main {

    public static void main(String[] args) {
        Window window = new Window();
        PanelPhone panelPhone = new PanelPhone();
        window.add(panelPhone);
    }
}

class PanelPhone extends JPanel {

    public PanelPhone() {
        this.setLayout(null);
        this.setBorder(new EtchedBorder());
        this.setBackground(Color.GRAY);
        this.setLocation(20, 20);
        this.setSize(300, 200);
        this.setVisible(true);
    }
}

    class Window extends JFrame {

    public Window() {
        super("Phone");
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setSize(new Dimension(1000, 900));
        this.setLocationRelativeTo(null);
        this.setLayout(null);
        this.setVisible(true);
    }

}

p.s. мне показалось, что создавать дополнительные объекты в классах, уже наследованных от нужных компонентов излишне, и записал настройки в конструктор, но это скорее предложение, чем исправление - ошибка крылась именно в последовательности вызовов

