【发布时间】:2016-11-20 19:09:30
【问题描述】:
这段代码有问题
public static void main(String[] args) {
final GLProfile profile = GLProfile.get(GLProfile.GL2);
GLCapabilities capabilities = new GLCapabilities(profile);
final GLCanvas glcanvas = new GLCanvas(capabilities);
MainRender r = new MainRender();
glcanvas.addGLEventListener(r);
glcanvas.setSize(700, 400);
final FPSAnimator animator = new FPSAnimator(glcanvas, 300, true);
final JFrame frame = new JFrame("Render");
frame.getContentPane().add(glcanvas);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
if (animator.isStarted())
animator.stop();
System.exit(0);
}
});
frame.setSize(frame.getContentPane().getPreferredSize());
frame.setLocationRelativeTo(null);
frame.setVisible(true);
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(0, 0));
frame.add(p, BorderLayout.SOUTH);
keyBindings(p, frame, r);
animator.start();
Handler h = new Handler();
p.addMouseListener(new Handler());
p.addMouseMotionListener(new Handler());
}
在处理程序处 h = new Handler(); Eclipse 显示此消息
没有可以访问 MainRender 类型的封闭实例。必须使用 MainRender 类型的封闭实例来限定分配(例如 x.new A(),其中 x 是 MainRender 的实例)。
有什么解决办法吗?
【问题讨论】: