2014-01-12 2 views
0

그래서 응용 프로그램을 개발하고 있습니다. 나는 커다란 문제가 있으며, 나는 어리석은 것을 간과 할 가능성이 크다는 것을 알고 있지만, 내 scollpane은 스크롤하지 않는다. 누군가 다음의 코드를 체크 아웃하고 내가 뭘 잘못했는지 말해 줄래?JScrollPane이 스크롤되지 않습니다 - Java Desktop Application

rotationPanel = new JPanel(); 
rotationPanel.setLayout(null); 
rotationLabels = new JLabel[countStarters(team)]; 
resetXY(5,5); 
for(int i = 0; i < countStarters(team); i++){ 
    rotationLabels[i] = new JLabel(team.rotation.get(i).getName()); 
    rotationLabels[i].setForeground(Color.BLACK); 
    addComp(rotationLabels[i], rotationPanel, labelX, labelY, labelSize); 
    labelY += 25; 
} 

//Other Code in between 

rotationBar = new JScrollPane(rotationPanel); 
rotationBar.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
rotationBar.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); 
rotationBar.setPreferredSize(new Dimension(520, 150)); 
addComp(rotationBar, this, 15, 75, new Dimension(520, 150)); 

//addComp method: 
public void addComp(JComponent comp, JComponent panel, int xPos, int yPos, Dimension size){ 
    comp.setLocation(xPos,yPos); 
    comp.setSize(size); 
    panel.add(comp); 
} 

resetXY() 메소드는 어떤 도움이

건배, 데이브을 감상 할 수있다

구성 요소에 대한 x와 y 위치를 설정

나는 당신의 JPanel을 가질 필요가 생각
+1

uff 'null'레이아웃을 사용하지 않는 것이 좋습니다 – nachokk

+0

누구나 그렇게 말합니다. 나는 이런 식으로 GUI를 위해 null 레이아웃을 사용하는 것을 선호한다. 더 많은 제어 – jDave1984

+1

및 크기를 조정할 때 잘 작동합니까? 다른 결의안에서도? – nachokk

답변

1

JScrollPane은 preferredSize 또는 구현 된 경우 Scrollable#getPreferredScrollableViewportSize을 사용하여 스크롤 창과보기 포트의 크기를 결정합니다. 뷰포트가 스크롤 창보다 큰 경우 스크롤 막대가 표시됩니다.

스윙 API는 레이아웃 관리자 사용을 중심으로 설계되었으므로 문제가없고 추가 작업이 필요하지 않습니다.

레이아웃 관리자는 글꼴 렌더링, DPI, 화면 크기 및 렌더링 파이프 라인을 포함하여 시스템 간의 차이점을 해결하는 데 도움을줍니다.

+0

그래서 레이아웃 관리자를 사용하는 경우입니다. 어느 것이 가장 통제력을 줄까요? 나는 그리드와 그리드 백을 사용했고 정말 감명을받지 못했다. 나는 Spring을 사용할 생각 이었지만 너무 익숙하지 않았습니다. 내가 원하는 곳에 대부분의 컴포넌트를 놓을 수있게 해주는 것이 필요하다. – jDave1984

+0

나는 GridBagLayout을 선호한다.하지만 BorderLayout과 GridLayout을 정규베이스에 사용하고 그것들을 합성한다. MigLayiut을 고려해보십시오. EmptyBorder와 GridBagLayout을 사용하여 구성 요소를 채우기 위해 insets를 사용할 수 있다는 것을 잊지 마십시오. – MadProgrammer

+0

좋은 지적입니다. 내가 그리드 백을 고려할 때 나는 그것에 대해 생각하지 않았다. 일반적으로 컨트롤의 양만 null을 사용하는 것이 좋지만 이러한 스크롤 막대는 고통이 될 수 있습니다. Google에 내가 가자! – jDave1984

0

그 사이즈가 설정되어 있지 않은 경우, JScrollPane에 맞도록 축소됩니다.

+0

Nope. Scrollpane은 패널의 "크기"에 상관하지 않으며, 다른 크기를 사용하여 패널의 크기와 스크롤 창이 있어야하는 것을 결정합니다. – MadProgrammer

관련 문제