[vtkusers] VTK java wrapper and Swing

Sebastien Jourdain sebastien.jourdain at kitware.com
Mon May 7 10:30:44 EDT 2012


Hi Jonathan,

could you try using the EDT to create your swing components like follow:

 public static void main(String s[]) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                 JFrame frame = new JFrame("SimpleVTK");
                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                 frame.getContentPane().setLayout(new BorderLayout());
                 frame.getContentPane().add(new SimpleVTK(),
BorderLayout.CENTER);
                 frame.setSize(400, 400);
                 frame.setLocationRelativeTo(null);
                 frame.setVisible(true);
            }
        });
}

If that's not working could you send your file:
/home/jruiz/NetBeansProjects/Dicom Studio/hs_err_pid12761.log (or the
new one...)

Thanks,

Seb

On Mon, May 7, 2012 at 9:28 AM, Jonathan Ruiz Peinado
<jonathan.ruiz3 at gmail.com> wrote:
> Hi, I'm sure this is an easy question but I'm a bit Stuck on it.
>
>
> When I use the example class SimpleVTK in other class I get an ugly FATAL
> error, I think that i's something about Swing and  vtkPanel...
>
> Any ideas? ,  thanks in advance
> ----------------------------------------------------------------------
> public class OtherClass  {
>
>     public static void main(String s[]) {
>                JFrame frame = new JFrame("SimpleVTK");
>                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>                 frame.getContentPane().setLayout(new BorderLayout());
>                 frame.getContentPane().add(new SimpleVTK(),
> BorderLayout.CENTER);
>                 frame.setSize(400, 400);
>                 frame.setLocationRelativeTo(null);
>                 frame.setVisible(true);
>     }
> }
>
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  SIGSEGV (0xb) at pc=0x00007faa139d2516, pid=12761, tid=140367185549056
> #
> # JRE version: 6.0_26-b03
> # Java VM: Java HotSpot(TM) 64-Bit Server VM (20.1-b02 mixed mode
> linux-amd64 compressed oops)
> # Problematic frame:
> # C  [libjava.so+0x17516]  JNU_GetEnv+0x6
> #
> # An error report file with more information is saved as:
> # /home/jruiz/NetBeansProjects/Dicom Studio/hs_err_pid12761.log
> #
> # If you would like to submit a bug report, please visit:
> #   http://java.sun.com/webapps/bugreport/crash.jsp
> #
> ---------------------------------------------------------------------------
>
> /**
>  * An application that displays a 3D cone. A button allows you to close the
>  * application.
>  */
> public class SimpleVTK extends JPanel implements ActionListener {
>     private static final long serialVersionUID = 1L;
>     private vtkPanel renWin;
>     private JButton exitButton;
>
>     // -----------------------------------------------------------------
>     // Load VTK library and print which library was not properly loaded
>     static {
>         if (!vtkNativeLibrary.LoadAllNativeLibraries()) {
>             for (vtkNativeLibrary lib : vtkNativeLibrary.values()) {
>                 if (!lib.IsLoaded()) {
>                     System.out.println(lib.GetLibraryName() + " not
> loaded");
>                 }
>             }
>         }
>         vtkNativeLibrary.DisableOutputWindow(null);
>     }
>
>     // -----------------------------------------------------------------
>     public SimpleVTK() {
>         super(new BorderLayout());
>
>         // build VTK Pipeline
>         vtkConeSource cone = new vtkConeSource();
>         cone.SetResolution(8);
>
>         vtkPolyDataMapper coneMapper = new vtkPolyDataMapper();
>         coneMapper.SetInputConnection(cone.GetOutputPort());
>
>         vtkActor coneActor = new vtkActor();
>         coneActor.SetMapper(coneMapper);
>
>         renWin = new vtkPanel();
>         renWin.GetRenderer().AddActor(coneActor);
>
>         // Add Java UI components
>         exitButton = new JButton("Exit");
>         exitButton.addActionListener(this);
>
>         add(renWin, BorderLayout.CENTER);
>         add(exitButton, BorderLayout.SOUTH);
>     }
>
>     /** An ActionListener that listens to the button. */
>     public void actionPerformed(ActionEvent e) {
>         if (e.getSource().equals(exitButton)) {
>             System.exit(0);
>         }
>     }
>
>     public static void main(String s[]) {
>         SwingUtilities.invokeLater(new Runnable() {
>             @Override
>             public void run() {
>                 JFrame frame = new JFrame("SimpleVTK");
>                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>                 frame.getContentPane().setLayout(new BorderLayout());
>                 frame.getContentPane().add(new SimpleVTK(),
> BorderLayout.CENTER);
>                 frame.setSize(400, 400);
>                 frame.setLocationRelativeTo(null);
>                 frame.setVisible(true);
>             }
>         });
>     }
> }
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>



More information about the vtkusers mailing list