JPanel의 다른 영역으로 스크롤 할 수있는 화면을 만들려고합니다. JPanel의 다른 영역을 보려면 JScrollPane을 사용하려고합니다. 즉, JPanel이 JFrame보다 큰 그림을 그리기를 원합니다.JScrollPane이 뷰를 이동하지 않습니다.
JFrame mainFrame = new JFrame("My Frame");
mainFrame.setSize(700, 700);
clickScreen = new ClickPanel();
clickScreen.setPreferredSize(new Dimension(2000, 2000));
JScrollPane scrollArea = new JScrollPane(clickScreen,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
mainFrame.getContentPane().add(scrollArea, BorderLayout.CENTER);
여기서 ClickPanel은 JPanel을 확장하고 그리기에 사용되는 클래스입니다.
내 문제는 : 스크롤 막대를 사용하여 스크롤 할 때 뷰 포인트가 이동하지만 내 paintComponent의 그림이 같은 위치에 표시됩니다. 나는 그 아래에있는 새로운 영역으로 스크롤하여 그곳에 그릴 수 있기를 원합니다.
이 panel.setSize에 의해 또한 크기 (2000,2000)를 설정하려고 참조 할 수가 JScrollPane에 대한 자세한 내용을 알고; –
이 방법으로'setPreferredSize()'를 사용하지 마십시오; 이 [Q & A] (http://stackoverflow.com/q/7229226/230513)도 참조하십시오. – trashgod