创建BufferStrategy时发生java.lang.IllegalStateException

创建BufferStrategy时发生java.lang.IllegalStateException,java,illegalstateexception,bufferstrategy,Java,Illegalstateexception,Bufferstrategy,当我尝试使用createBufferStrategy(2)创建用于双缓冲的缓冲策略时,出现以下错误: Exception in thread "main" java.lang.IllegalStateException: Component must have a valid peer at java.awt.Component$FlipBufferStrategy.createBuffers(Unknown Source) at java.awt.Component$FlipB

当我尝试使用
createBufferStrategy(2)
创建用于双缓冲的缓冲策略时,出现以下错误:

Exception in thread "main" java.lang.IllegalStateException: Component must have a valid peer
    at java.awt.Component$FlipBufferStrategy.createBuffers(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.<init>(Unknown Source)
    at java.awt.Component$FlipSubRegionBufferStrategy.<init>(Unknown Source)
    at java.awt.Component.createBufferStrategy(Unknown Source)
    at java.awt.Canvas.createBufferStrategy(Unknown Source)
    at java.awt.Component.createBufferStrategy(Unknown Source)
    at java.awt.Canvas.createBufferStrategy(Unknown Source)
    at SpritePractice.render(SpritePractice.java:87)
    at SpritePractice.run(SpritePractice.java:67)
    at SpritePractice.start(SpritePractice.java:100)
    at SpritePractice.init(SpritePractice.java:48)
    at SpritePractice.<init>(SpritePractice.java:41)
    at SpritePractice.main(SpritePractice.java:108)

}

您必须将实例添加到框架中,因为如果不添加实例,画布将无法显示。有了这一点,它应该可以:

 frame.add(this);

您的SpritePractice实例不可见。您尚未将其添加到正在创建的框架中

 frame.add(this);