2016-11-18 3 views
0

그래서 자바로 브라우저를 만들려고했습니다. 나는 사용자가 웹 사이트의 내용을 스크롤 할 수있게하려고했다. JPanel을 JScrollPane에 넣으려고했지만 JPanel이 표시되지 않았습니다. 내가이 문제를 테스트 한 새로운 자바 프로젝트를 만든 후에도 문제가 발생했다. 이 그것을 표시 무엇JScrollPane에 JPanel이 표시되지 않습니다.

package exp; 

import java.awt.Color; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 

public class test { 
    public static void main(String[] args) { 
     JFrame f = new JFrame("test"); 
     JScrollPane s = new JScrollPane(); 
     JPanel p = new JPanel(); 
     s.add(p); 
     f.add(s); 
     f.setVisible(true); 
     f.setSize(800, 600); 
     p.setBackground(Color.WHITE); 
     p.getGraphics().drawString("test", 50, 50); 

    } 
} 

: 다음은 테스트 프로젝트의 코드 This is what the code dipslayed

답변

6
JScrollPane s = new JScrollPane(); 
JPanel p = new JPanel(); 
s.add(p); 

는 스크롤 창에 직접 구성 요소를 추가하지 마십시오. 구성 요소를 스크롤 창의 viewport에 추가해야합니다. 당신은 사용하여이 작업을 수행 :

JPanel p = new JPanel(); 
JScrollPane s = new JScrollPane(p); 

또는

JPanel p = new JPanel(); 
JScrollPane s = new JScrollPane(); 
s.setViewportView(p); 

가 수행 할 getGraphics(...) 방법을 사용하지 마십시오 그림 :

// p.getGraphics().drawString("test", 50, 50); 

당신은 JPanelpaintComponent() 메서드를 재정의해야하며, 프레임에 패널을 추가하십시오. 자세한 정보 및 작업 예제는 Custom Painting에있는 스윙 튜토리얼의 섹션을 읽으십시오.

모든 Swing 기본 사항에 대한 자습서로의 링크를 편리하게 유지하십시오.

+0

고맙습니다. –