Если вы хотите, чтобы JOPtionPane был дочерним по отношению к основному JFrame, то добавьте его как дочерний. Конечно, тогда он покроет ваши точки. Следовательно, вам не нужно рисовать свои точки непосредственно на панели содержимого основного JFrame, а скорее в новой JPanel, которую вы также добавили на панель содержимого JFRame. Дайте мне знать, если я понял вопрос вообще.
Вот некоторый код для того, как я вижу настройки (я исключаю из этого проблему с макетом, частично потому, что это зависит от того, что вы хотите увидеть):
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(new Dimension(400,400));
frame.getContentPane().add(new JOptionPane());
JPanel canvasForDots = new JPanel();
frame.getContentPane().add(canvasForDots);