2012-11-24 3 views
2

SpringLayout을 사용하는 뷰 구성 요소가있는 JScrollPane이 있습니다.Java - SpringLayout을 사용한 JScrollPane 뷰 레이아웃

final JPanel panel = new JPanel(new SpringLayout()); 
// add stuff to panel here 
final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
getContentPane().add(scrollPane); 

JScrollPane은 도움이되지 않습니다. 도움이 될 것입니다. 존재하는 경우

+3

이것은 [sscce] (http://sscce.org)에 큰 질문입니다. 이것은 최소한의 컴파일 및 실행 가능한 코드 예제가 될 것입니다 귀하의 문제를 보여줍니다 .. 이것은 우리가 귀하의 코드를 실행하고 수정하고 아마도 심지어 그것을 수정할 수 있습니다. SSCCE 요구 사항에 대한 많은 중요한 세부 정보를 제공하므로 회신하기 전에 링크를 읽으십시오. –

+1

'JScrollPane이 작동하지 않는 것 같습니다. 어떤 도움을 주시면 감사하겠습니다! '라는 메시지가 나타나면 SSCCE가 JFrame, JScrollPane 및 JPanel (새 SpringLayout()) 만 표시했는지 확인하십시오. hmmm empty JPanel은 절대 반환하지 않습니다. 임의의 크기, 모든 LayourManager에 대해 Dimension (0, 0)을 반환합니다. – mKorbel

답변

3

, 명시 적, 스크롤 창은 9 개 개의 구성 요소의 적절한 사이즈 (뷰포트를 기반으로 계산하는 스크롤 구획의 적절한 사이즈를 설정하지 않는 한 How to Use Scroll Panes

에서 인용하고, 두 개의 스크롤 바, 행 및 열 머리글 및 네 모퉁이). 대부분의 프로그래머가 가장 중요하게 생각하는 가장 큰 요소는 클라이언트를 표시하는 데 사용되는 뷰포트의 크기입니다.

  • 그래서 당신에게이 중 보기 포트로 사용하여 JPanel/구성 요소의 getPreferredSize()JScrollPane 예를

    final JPanel panel = new JPanel(new SpringLayout()); 
    // add stuff to panel here 
    final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
    scrollPane.setPreferredSize(new Dimension(300, 300)); 
    add(scrollPane); 
    
  • setPreferedSize(Dimension d)를 호출하거나 오버라이드 (override) 할

    final JPanel panel = new JPanel(new SpringLayout()) { 
    
        @Override 
        public Dimension getPreferredSize() { 
         return new Dimension(300, 300); 
        } 
    }; 
    // add stuff to panel here 
    final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
    add(scrollPane); 
    

기타 사항 :

  • 불필요 JFrame 클래스를 확장하지 않습니다. 통화가 의 contentPane에 전달로

  • 단순히 JFrame 인스턴스 add(..)를 호출합니다.

관련 문제