2014-12-08 6 views
-1

JFrame의 내용을 위아래로 스크롤하고 싶습니다. 스크롤 바를 사용하는 것이 좋습니다. JPanel 또는 JScrollPane 안에 내용을 감싸고 싶지 않습니다. 응용 프로그램에서 시각적 결함이 생기기 때문입니다.JFrame을 스크롤 가능하게 만드는 방법은 무엇입니까?

어떻게하는지에 대한 아이디어가 있으십니까?

+1

어떤 종류의 시각적 결함이 있습니까? 새로운 스크롤 시스템을 고안하는 것보다 문제를 해결하는 것이 더 쉽습니다. – markbernard

+3

JScrollPane 또는 JPanel에서 뷰를 래핑하면 시각적 결함이 발생하며 잘못된 결과가 발생합니다. 그 대신 해킹을 찾으려고 할 때 기존 문제를 해결하는 데 집중해야합니다. – MadProgrammer

+0

JFrame에 직접 스크롤바를 적용 할 수 없습니다. JPanel 또는 JScrollPane을 사용해야합니다. 이러한 옵션을 피하는 대신, 왜 제대로 작동하지 않는지 알아 내야합니다. – DerStrom8

답변

1

JScrollPane이 가장 쉬운 방법입니다. 당신은 결함이 있다고 말하지만, 이것은 아마도 JScrollPane을 사용하지 않아도 여전히 문제가되는 코드의 문제를 나타냅니다.

JScrollPane을 사용하지 않도록 설정 한 경우 BorderLayout을 사용하여 JPanel을 만들고 BorderLayout.CENTER 및 레이아웃을 null로 설정하여 JPanel ('center'라고 함)을 추가해야합니다. 컨텐츠를 'center'내에 추가하고 다른 JScrollBar를 BorderLayout.EAST에 추가하고 AdjustmentListener를 JScrollBar에 추가하십시오. adjustmentListener가 트리거되면 JScrollBar의 상대적인 y 오프셋에 중심에있는 내용 (Component.setLocation (...))을 이동하고 'center'에서 repaint를 호출해야합니다.

+0

JFrame을 통해 수동으로 내용을 이동하는 것에 대해 생각하지 않았습니다. 고맙습니다. 난 그냥 배열을 2 개의 버튼에 연결하고 null 레이아웃 JFrame에서 setBounds (0, y, 650, 70)를 사용하여 각 요소를 이동했지만 모두 ArrayList 안에 있기 때문에. – totallyTim

관련 문제