Skip to content

Instantly share code, notes, and snippets.

@metasim
Last active December 17, 2015 05:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save metasim/5556435 to your computer and use it in GitHub Desktop.
Save metasim/5556435 to your computer and use it in GitHub Desktop.
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.File;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import vtk.*;
public class VTKCanvas extends JPanel {
static {
if (!vtkNativeLibrary.LoadAllNativeLibraries()) {
for (vtkNativeLibrary lib : vtkNativeLibrary.values()) {
if (!lib.IsLoaded()) {
System.out.println(lib.GetLibraryName() + " not loaded");
}
}
}
vtkNativeLibrary.DisableOutputWindow(null);
}
vtkXMLUnstructuredGridReader reader = new vtkXMLUnstructuredGridReader();
vtkDataSetMapper surfMapper = new vtkDataSetMapper();
public VTKCanvas() {
setLayout(new BorderLayout());
// Create the buttons.
vtkCanvas renWin = new vtkCanvas();
add(renWin, BorderLayout.CENTER);
AxesActor aa = new AxesActor(renWin.GetRenderer());
renWin.GetRenderer().AddActor(aa);
vtkActor actor = new vtkActor();
actor.SetMapper(surfMapper);
renWin.GetRenderer().AddActor(actor);
}
/**
* Menu action for opening file.
*/
public JMenuBar createMenus() {
// Create menu
JMenuBar menuBar;
JMenu menu;
JMenuItem menuItem;
// Create the menu bar.
menuBar = new JMenuBar();
// Build the first menu.
menu = new JMenu("File");
menu.setMnemonic(KeyEvent.VK_F);
menuBar.add(menu);
// A JMenuItem
menuItem = new JMenuItem("Open XML...", KeyEvent.VK_X);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
ActionEvent.CTRL_MASK));
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Create a file chooser
final JFileChooser fc = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("VTK Unstructured Grid files (*.vtu)", "vtu");
fc.setFileFilter(filter);
// In response to a button click:
int returnVal = fc.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File f = fc.getSelectedFile();
reader.SetFileName(f.getAbsolutePath());
surfMapper.SetInputConnection(reader.GetOutputPort());
reader.Update();
}
}
});
menu.add(menuItem);
return menuBar;
}
public static void main(String s[]) {
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
VTKCanvas panel = new VTKCanvas();
JFrame frame = new JFrame("VTK Canvas Test");
frame.setJMenuBar(panel.createMenus());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.setSize(600, 600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
vtkReferenceInformation infos = vtkObject.JAVA_OBJECT_MANAGER.gc(true);
System.out.println(infos);
System.out.println(infos.listRemovedReferenceToString());
System.out.println(infos.listKeptReferenceToString());
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment