2014-10-22 2 views
0

저는 Java로 만들 계획 인 게임의 레벨 디자이너를 만들고 있습니다. 예를 들어, 레벨의 크기 또는 배경을 설정하는 패널이 있습니다. 또한 다른 패널 인 'DesignerPanel'에 넣을 이미지를 선택할 수 있습니다. 그러면 해당 패널을 클릭하여 특정 위치에 배치 할 수 있습니다. JScrollPane에 DesignerPanel을 두어 더 큰 레벨을 스크롤합니다.JScrollPane의 JPanel이 표시되지 않습니다.

문제는 JScrollPane이 나타나지 않고 그 안에 있어야하는 패널도 없습니다. 스크롤 막대가 나타나지 않는 것에 대한 몇 가지 질문을 발견했지만, 제 경우에는 아무 것도 나타나지 않습니다. 글쎄, 적어도, 거의 아무것도.

오른쪽과 아래의 DesignerPanel의 아주 작은 줄무늬를 볼 수 있습니다. 다만, JScrollPane의 트레이스 또는 패널의 나머지는 존재하지 않습니다. 화면의 크기를 조절하거나 최소화하고 최소화하지 않아도 효과가 있습니다. 나는 이미지를 게시 할 것이고 분명히 도움이 될 것이라고 생각하지만 분명히 그렇게하기 위해 평판이 필요하다. 그렇게 미안하다.

내가 지금까지 가지고있는 관련 코드는 다음과 같습니다. 나는이 오류 때문에 중요하지 않기 때문에 대부분의 코드를 숨겼다.

package games; 

import java.awt.*; 
import java.io.*; 
import javax.swing.*; 

class LevelDesignerScreen extends JFrame 
{ 
    private SettingsPanel sp; 
    private DesignerPanel dp; 
    private JScrollPane scroller = new JScrollPane(); 

    LevelDesignerScreen() 
    { 
     sp = new SettingsPanel(this); 
     add(sp, BorderLayout.WEST); 
     dp = new DesignerPanel(sp); 
     dp.setSize(1000, 1000); 
     scroller.setPreferredSize(new Dimension(600, 600)); 
     scroller.add(dp); 
     add(scroller, BorderLayout.CENTER); 
    } 

    public static void main(String[] args) 
    { 
     new LevelDesignerScreen(); 
    } 
} 
+2

[읽기] (http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html)로 잠시 걸릴 수도 있습니다. –

답변

3

당신은

scroller = new JScrollPane(dp); 

또는

scroller.setViewportView(dp); 

대신 scroller.add(dp)

를 사용해야합니다.

더 일반적인 메모 : 레이아웃에 문제가있는 경우 관련된 모든 구성 요소에 기본 색 테두리를 붙여 공간이 차지하는 부분과 그렇지 않은 부분을 확인하십시오.

+0

당신은 생명의 은인입니다! – Hachachin

관련 문제