2011-03-07 26 views
0

大家好我是新来的新和opengl和3d世界我成功地加载并显示一个obj文件,但是当我重新加载一个新的按jbutton新的是请根据旧的请画下你能帮助我刷新麦克风。刷新画布绘制一个新的对象

+0

您是否使用了动画?向我们展示你到目前为止所拥有的。 – SamG

回答

1

你不会说你的jbutton做什么,所以即时猜测你在加载你的新对象时重新初始化你的drawable ..在我的经验中,这只会增加一个新的drawable到你的画布..我宁愿只是改变什么beeing绘制,但如果没有继承人如何关闭当前绘制/帆布:

 try { 
      canvas.getContext().makeCurrent(); 
      canvas.getContext().release(); 
      canvas.getContext().destroy(); 
      drawable.getContext().makeCurrent(); 
      drawable.getContext().release(); 
      drawable.getContext().destroy(); 

     } catch (GLException releaseFailure) { 
      releaseFailure.printStackTrace(); 
     } 

,然后重新初始化它们,当你添加新的对象..

+0

我正在使用jogl和obj wavefront文件处理面部动画应用程序,我加载并显示了一个3D面部,并感谢您的回答,我现在解决了问题,现在它工作得非常好,当我在JButton中加载一个简单的clic面部时,当我使用JFilechooser来选择一个面,它不会出现,除非我手动调整框架这里是我使用的代码 – ima

+0

open.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent eve){JFileChooser chooser = new JFileChooser() ();选择一个模型“);结果= chooser.showOpenDialog(空);如果(结果== JFileChooser.APPROVE_OPTION){文件f = chooser.getSelectedFile();名称= f.getName();} makeContentCurrent(); canvas.requestFocus(); loadmodel(); canvas.setVisible(true); context.release();}}); – ima

+0

我只想说,非常感谢你的帮助我找到了解决方案,到最后的问题我只需要tp把canvas.repaint();这里是代码 – ima