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();
}
}
}