|
Hi Jmol Users, I recently went back to a project I abandoned in 2006 and would like to take advantage of some of the new features that have been implemented in Jmol since then. However, when I embed the latest version into my Swing application, I can't get it to display PDB files. Instead, Jmol throws the following exception: FileManager opening C:/Documents and Settings/Chris/Desktop/1CDH.pdbI am trying to upgrade from Jmol 11.0.RC3 to Jmol 11.6.13. Some of the method signatures have changed between versions but otherwise my code hasn't changed. I'm experimenting with a couple of very simple examples (included below) to try and work out what is going wrong. If anyone could shed some light on the matter I would be very grateful. Many thanks, Chris Foley. This example uses Jmol 11.0.RC3 and works perfectly: package abc; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Rectangle; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import org.jmol.adapter.smarter.SmarterJmolAdapter; import org.jmol.api.JmolViewer; public class OldJmolDemo extends JPanel { static final long serialVersionUID = 0; private JmolViewer viewer; public OldJmolDemo(File pdbFile) { viewer = JmolViewer.allocateViewer(this, new SmarterJmolAdapter(null) ); viewer.openFile( pdbFile.toString() ); } // constructor public JmolViewer getViewer() { return viewer; } private final Dimension currentSize = new Dimension(); private final Rectangle rectClip = new Rectangle(); @Override public void paint(Graphics g) { getSize(currentSize); g.getClipBounds(rectClip); viewer.renderScreenImage(g, currentSize, rectClip); } // paint public static void main(String[] args) { JFileChooser chooser = new JFileChooser(); if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { OldJmolDemo demo = new OldJmolDemo(chooser.getSelectedFile()); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(demo); frame.setSize(500, 500); frame.setVisible(true); } // if } // main } // class This example uses Jmol 11.6.13 and has the error explained above. The code is almost identical so the differences are highlighted in bold. package abc; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Rectangle; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import org.jmol.adapter.smarter.SmarterJmolAdapter; import org.jmol.api.JmolViewer; import org.jmol.viewer.Viewer; public class NewJmolDemo extends JPanel { static final long serialVersionUID = 0; private JmolViewer viewer; public NewJmolDemo(File pdbFile) { viewer = new Viewer(this, new SmarterJmolAdapter()); // Using JmolViewer instead of Viewer produces identical results. viewer.openFile( pdbFile.toString() ); } // constructor public JmolViewer getViewer() { return viewer; } private final Dimension currentSize = new Dimension(); private final Rectangle rectClip = new Rectangle(); @Override public void paint(Graphics g) { getSize(currentSize); g.getClipBounds(rectClip); viewer.renderScreenImage(g, currentSize, rectClip); } // paint public static void main(String[] args) { JFileChooser chooser = new JFileChooser(); if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { NewJmolDemo demo = new NewJmolDemo(chooser.getSelectedFile()); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(demo); frame.setSize(500, 500); frame.setVisible(true); } // if } // main } // class |
------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________ Jmol-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jmol-users

