В чём причина неработоспособности программы?
Окно и все компоненты на нём постоянно перерисовываются графической подсистемой. Поэтому рисовать на компоненте надо в методе перерисовки:p = new JPanel() {
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        g.setColor(new Color(255, 255, 255));
        g.fillRect(0, 0, 1000, 1000);  
    }    
};
p.setBackground(new Color(0));
//p.setBackground(new Color(255, 0, 0)); << ЭТА СТРОКА НОРМАЛЬНО РАБОТАЕТ
закомментирован
поэтому чёрное окно