2010-05-17 3 views
3

데이터베이스 스텁 (오라클 데이터베이스가 될 것입니다.)에서 많은 데이터 라인이 돌아 오는 응용 프로그램을 만들고 있는데, 어떤 이유로 스크롤 막대가 약 500 번째 요소에서 멈 춥니 다. 스크롤 막대 내에 모든 요소가 표시되도록하려면 어쨌든 궁금합니다.SWT ScrolledComposite는 정보를 차단합니다.

답변

0

스크롤 막대의 최소 및 최대 값을 설정해야 할 수도 있습니다. setMinimum() 및 setMaximum() 메서드를 각각 사용합니다.

페이지 증가분을 설정하는 것도 좋은 생각입니다. 이것은 사용자가 엄지 손가락과 화살표 버튼 사이의 영역을 클릭하거나 Page Up 또는 Page Down 버튼을 누를 때 선택된 값이 변경되는 스크롤 선의 수입니다. setPageIncrement() 메서드를 사용합니다.

마지막으로 오라클은 테이블에서 검색 할 수있는 최대 행 수를 지정할 수 있습니다. 나는 디폴트가 500 행이라고 생각한다.

1

Windows의 스크롤 막대에 상당히 일반적인 문제가 있기 때문에 여기서는 Windows를 사용한다고 가정합니다. 최대 값은 32,768입니다. 따라서 ScrolledComposite의 내부 합성 높이가 32,768 픽셀보다 큰 경우 합성이 잘립니다.

이 문제를 해결하는 강력한 방법을 찾지 못했지만 해결 방법이 있습니다. 스크롤하려는 컴포지트에서 스크롤바를 분리하십시오. ScrollBar를 만들 수는 없지만 ScrollBar만큼 정확하게 ScrolledComposite를 만든 다음 ScrollListener를 연결하고 스크롤 합성물의 레이아웃 위치를 조정하게 할 수 있습니다.

어딘가에 발췌 문장이 있지만,이 진단이 시나리오에 적용되는지 확실하지 않습니다.

+0

조금 놀아 본 후에는 문제가 좀 더 일반적인 것으로 나타났습니다. 합성물의 최대 높이는 32,768입니다. 버퍼링을 사용하여 내 자신의 문제를 해결했습니다 : 주어진 순간에 정보의 하위 섹션이 포함 된 작은 합성물 만 표시됩니다. 스크롤 할 때 버퍼가 업데이트되어 그에 따라 표시됩니다. (이것은 엄청난 작업이었고 내 데이터에 매우 특수했습니다.) –

관련 문제