JFrameRenderer
VTKExamples/Java/SwingIntegration/JFrameRenderer
Description¶
This example shows how to render a VTK scene in a JFrame using a vtkRenderWindowPanel.
Code¶
JFrameRenderer.java
import java.awt.*; import javax.swing.*; import vtk.*; public class JFrameRenderer extends JFrame { static { if (!vtkNativeLibrary.LoadAllNativeLibraries()) { for (vtkNativeLibrary lib : vtkNativeLibrary.values()) { if (!lib.IsLoaded()) { System.out.println(lib.GetLibraryName() + " not loaded"); } } } vtkNativeLibrary.DisableOutputWindow(null); } private vtkRenderWindowPanel renderWindowPanel; public JFrameRenderer() { // Create a sphere source vtkSphereSource sphere = new vtkSphereSource(); sphere.SetRadius(10.0); // Create a sphere mapper vtkPolyDataMapper sphereMapper = new vtkPolyDataMapper(); sphereMapper.SetInputConnection(sphere.GetOutputPort()); //create sphere actor vtkActor sphereActor = new vtkActor(); sphereActor.SetMapper(sphereMapper); // Create a render window panel to display the sphere renderWindowPanel = new vtkRenderWindowPanel(); renderWindowPanel.setPreferredSize(new Dimension(600, 600)); renderWindowPanel.setInteractorStyle(new vtkInteractorStyleTrackballCamera()); add(renderWindowPanel, BorderLayout.CENTER); renderWindowPanel.GetRenderer().AddActor(sphereActor); } public void render() { renderWindowPanel.Render(); } public static void main(String[] args) { try { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { JPopupMenu.setDefaultLightWeightPopupEnabled(false); ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false); JFrame frame = new JFrameRenderer(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); frame.render(); } }); } catch (Exception e) { e.printStackTrace(); } } }