2010-01-11 3 views
1

다음과 같은 문제가 있습니다 :JScrollpane 스크롤 바 크기 조정 문제

이미지가 포함 된 JScrollPane이 있습니다.

scrollpane은 BorderLayout으로 모든 것을 배치 할 수 있도록 스크롤 패널이 다른 컴포넌트와 함께 JPanel 내부에 있습니다 (스크롤 패널은 CENTER이고 저는 남쪽에 뭔가가 있습니다).

이 JPanel은 JSplitPane에 있습니다.

JSplitPane은 마침내 JFrame 안에 있습니다.

JFrame 
{ 
JSplitpane 
{ 
    JPanel(BorderLayout) 
    { 
    JScrollPane(CENTER) 
    { 
    BufferedImage 
    } 

    JPanel(SOUTH) 
    {...} 
    } 
} 
} 

내 문제는 지금은 내 프레임 크기를 조정할 때 이미지 크기에 도달 할 때까지 스크롤의 이미지가 잘 크기를 조절한다는 것입니다. 그런 다음 이미지가 늘어나서 방지하고 싶습니다. FlowLayout을 사용하여 레이아웃 인 JPanel에서 JScrollPane을 래핑하려고 시도했습니다. 크기 조정 비트를 제대로 작동하지만 일단 프레임 크기를 조정하면 스크롤 막대가 사라집니다.

scrollPane의 setSize() 메서드를 오버라이드하여 프레임 크기가 조정 된 후 스크롤 판의 크기가 항상 이미지의 크기로 설정된다는 것을 알았습니다. 나는 그것을 고칠 수있는 단서가 없다.

모든 힌트가 인정됩니다.

건배,

+0

이상한 구성표에 대해 사과드립니다. 미리보기에서 더 잘 보였습니다 ... – Ben

+0

어떻게 스크롤 패널에 이미지를 추가합니까 ... –

+0

scrollpane 클래스를 하위 클래스로 만들고 초기화하는 동안 setViewportView()를 호출하여 뷰포트에 추가하는 BufferedImage를로드합니다. – Ben

답변

0

나는 당신이 BufferedImage의 너비/높이로 JScrollPanesetMaximumSize() 전화 (하지만 그것을 시도하지 않은) 경우 잘한다고 생각.

그리고 일반적으로 댓글을 달았습니다. 어린이를 추가하기 위해 스윙 구성 요소를 재정의하는 것은 좋지 않은 생각입니다. 대신 기본 구성 요소를 만들고 작성하는 컨트롤러 클래스를 만듭니다.


질문을 다시 읽었습니다. 이미지가 늘어나거나 스크롤바가 사라지는 문제입니까? 스크롤 할 내용이 없을 때에도 스크롤바를 화면에 유지하려면 setVerticalScrollBarPolicy()setHorizontalScrollBarPolicy() 메소드를 살펴보십시오.

+0

답변 버튼을 사용하여 죄송합니다. 나는 이것에 익숙하지 않고 당신이 버튼을 눌렀을 때 대부분의 것들이 의미가 있습니다 ... 어쨌든, 저는 제 문제를 해결했고 SSCEP를 썼을 때 저에게 나타났습니다. 나는 maximumSize와 preferredSize를 엉망으로 만들었고 어떤 식 으로든 이상한 행동을 일으키는 초기화 후에 바로 maximumSize를 항상 기본 크기로 설정했습니다. 저는 조금 더 현명합니다. 아마도 ... 도움을 주셔서 감사합니다. -Ben – Ben