Почему на JScrollPane не добавляется объект моего класса?
У меня есть класс GUI В который я добавляю разные компоненты (панели с кнопками, слайдерами и т.д.). И есть класс graphicsArea наследник JPanel в котором я переопределил метод paintComponent(Graphics g);
Когда я добавляю объект этого класса на панель JPanel graphicsPanelв конструкторе класса GUI
graphicsArea = new GraphicsArea();
graphicsArea.setVisible( false );
graphicsPanel = new JPanel(new BorderLayout());
graphicsPanel.add(graphicsArea);
setLayout( new BorderLayout() );
add( menuPanel,BorderLayout.WEST );
add(graphicsPanel);
И обрабатываю событие нажатия на кнопку, чтобы панель с графиком появилась
@Override
public void actionPerformed( ActionEvent e ){
DefaultTableModel model = (DefaultTableModel) dataTable.getModel();
for(int i =0; i<model.getRowCount(); i++ ) {
Double valueOfX = Double.parseDouble(model.getValueAt(i, 0).toString());
//valueOfX = valueOfX*(graphicsArea.getWidth()/gridSlider.getValue());
Double valueOfY = Double.parseDouble(model.getValueAt(i, 1).toString());
//valueOfY = valueOfY*(graphicsArea.getHeight()/gridSlider.getValue());
pointList.add(new Ellipse2D.Double(valueOfX, valueOfY, 5, 5));
}
graphicsArea.setVisible(!graphicsArea.isVisible());
SwingUtilities.updateComponentTreeUI(GUI.this);
graphicsArea.paintComponent(GUI.this.getGraphics());
}
То панель появляется.
Теперь я хочу добавить эту панель на JScrollPane, чтобы иметь возможность прокручивать область графика. Для этого, в классе GUI заменил приведенный код на
graphicsArea = new GraphicsArea();
graphicsArea.setVisible( false );
graphicsPanel = new JPanel(new BorderLayout());
graphicsPanel.add(graphicsArea);
setLayout( new BorderLayout() );
add( menuPanel,BorderLayout.WEST );
graphicsScroll = new JScrollPane();
graphicsScroll.add(graphicsPanel);
graphicsScroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
graphicsScroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
graphicsScroll.setVisible(false);
add(graphicsScroll);
и так же добавил в обработчик нажатия на кнопку появления графика
graphicsScroll.setVisible( !graphicsScroll.isVisible());
Но программа теперь не корректно работает. По нажатию на кнопку появляется только чёрная рамка JScrollPane
Почему так происходит? Как можно исправить?

