[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