2012-11-20 6 views
-1

방금 ​​분할 된 패널에 대한 GridBagLayout의 레이아웃을 만들었습니다. 완벽하게 작동하고 올바르게 보입니다.ScrollPane 내의 GridbagLayout Java Swing

그런 다음 세로로 스크롤 막대를 추가해야했습니다. 그러므로 나는 그것을 지금했다. 그러나 레이아웃이 이전처럼 '크기'가 아닙니다. 이제 그림에 표시된 영역에 달라 붙지 않습니다.

JSplitPane VPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,(new class1()),new JScrollPane(new class2(),ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER)); 

이전과 같이해야합니다. 어떤 아이디어?

+2

게시하시기 바랍니다 ... 우리는 당신이 당신의 스크롤 창에 추가, 그리고 대신 래퍼 용기 ...

public class ScrollableWrapper extends JPanel implements Scrollable { private Component wrapper; public ScrollableWrapper(Component wrapper) { setLayout(new BorderLayout()); add(wrapper); this.wrapper = wrapper; } @Override public Dimension getPreferredScrollableViewportSize() { return wrapper.getPreferredSize(); } @Override public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) { return 64; } @Override public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { return 64; } @Override public boolean getScrollableTracksViewportWidth() { return true; } @Override public boolean getScrollableTracksViewportHeight() { return false; } } 

를 사용할 수 있습니다 [SSCCE] (http://sscce.org)이 같은 위험한 추측을 싫어합니다 –

+0

안녕하세요 = D 효과적으로 그리드 가방 레이아웃을 망가 뜨린 코드를 게시했습니다. 게시 할 항목이 무엇인지 잘 모르시겠습니까? – Jay

+2

@ user1203297 :이 선을 추가하면 어떤 효과가 나타나고 추가하기 전에 어떤 모습으로 보이는지는 아무도 상상할 수 없거나 직관에서 벗어난 모습입니다. 그래서 [SSCCE] (http://sscce.org/) –

답변

3

당신이 한 모든 것은 수평 스크롤바를 "숨기기"뿐입니다. 이렇게하면 구성 요소를 관리하는보기 포트에는 아무런 영향을 미치지 않습니다.

Scrollable 인터페이스에서 기존 레이아웃을 래핑 해보십시오. 하나에게 자기를 구현하지 않으려면

JSplitPane VPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,new class1(),new JScrollPane(new ScrollableWrapper(class2())));