확장 클래스가 JFrame
입니다. 생성자에서는 getContentPane()
으로 전화하여 Container
에 저장합니다. 그러나 System.out.println(container)
이 "null"을 인쇄하고 container.setLayout(new BorderLayout)
을 호출하면 null 포인터 예외가 발생하므로 getContentPane()
은 null을 반환하는 것처럼 보입니다.getContentPane()이 null을 반환합니다.
일부 예제 코드 : 클래스 (즉 this.setLayout()
를) 자체에 setLayout
를 호출 또한
public class Example extends JFrame implements ... {
public Example(){
Container container = getContentPane();
System.out.println(container); //prints "null"
container.setLayout(new BorderLayout()); //throws nullpointerexception
는 또한 NullPointerException
발생하지만 제대로 문서를 이해한다면 단순히 위임이 프레임에 호출 때문입니다 프레임의 contentPane
. Eclipse를 사용하고 있으며 경고 또는 오류를 지적하지 않습니다. 예외는 클래스가 인스턴스화 된 두 레벨 (main(), setLayout()
호출까지 추적하기 때문에)별로 도움이되지 않습니다.
필자는 필자의 전체 코드를 게시 할 수 있지만, 클래스 할당을위한 것이기 때문에 마음에 들지 않을 것입니다. 안티 치트 소프트웨어가 플래그를 지정하는 것을 원치 않습니다.
그래도 더 많은 것을 볼 필요가 있습니다 : P – MadProgrammer
* "필요한 경우 전체 코드를 게시 할 수 있습니다."* 전체 코드 대신 [SSCCE] (http://sscce.org)를 게시하십시오. 컨텐츠 구획. 완성 된 코드를 제출할 때까지 유사성은 미미합니다. 'public class Example extends JFrame implements ... {'.. 그러나 이것은 아마도 코드가 단순히''JFrame'' **을 확장해야하는 경우가 아닙니다. 단순히 하나의 인스턴스를 사용하는 것과 반대되는 것입니다. –
콘솔에 다음 오류가 표시됩니다. javax.swing.JPanel [null.contentPane, 0,0,0x0, invalid, layout = javax.swing.JRootPane $ 1, alignmentX = 0.0, alignmentY = 0.0, border =, flags = 9, maximumSize =, minimumSize =, preferredSize = ] – chintan