Скажем, у меня большой JComponent:
Dimension componentSize = new Dimension(5000,5000);
И JScrollPane меньшего размера:
Dimension scrollPaneSize = new Dimension(500,500);
Я хочу отобразить часть моего JComponent в JScrollPane, как на картинке ниже:
Белый прямоугольник - это моя панель JScrollPane, которая в настоящее время отображает часть JComponent от (x1, y1) до (x2, y2).
Итак, что я пробовал:
Я создал новый JComponent:
JComponent component = new JComponent(){
protected void paintComponent(Graphics g)
{
// Here I draw a background
}
};
И поместил его как представление области просмотра в JScrollPane:
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(component);
Затем я прикрепил JScrollPane к JFrame:
JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.add(scrollPane, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
И я пытаюсь изменить видимую область с помощью:
scrollpane.getViewport().setBounds(x1,y1,500,500)
Что случилось?