The following example illustrates how to embed one (or more) JAIDA plotters into your own Java application. The example makes use of the hep.aida.ref.plotter.PlotterUtilities class which contains several methods for assisting in interfacing JAIDA to other Java applications.
import hep.aida.*; import hep.aida.ref.plotter.PlotterUtilities; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.util.Random; import javax.swing.*; /** * An example of how to embed a JAIDA IPlotter into your own application. */ public class AIDAEmbed extends JPanel { /** Creates a new instance of AIDAEmbed */ public AIDAEmbed() { super(new BorderLayout()); IAnalysisFactory af = IAnalysisFactory.create(); ITree tree = af.createTreeFactory().create(); IHistogramFactory hf = af.createHistogramFactory(tree); IHistogram1D h1d = hf.createHistogram1D("Test", 50, -3, 3); // Fill with junk Random rand = new Random(); for (int i = 0; i < 10000; i++) h1d.fill(rand.nextGaussian()); // Create an IPlotter IPlotter plotter = af.createPlotterFactory().create(); plotter.currentRegion().plot(h1d); // Now embed the plotter add(PlotterUtilities.componentForPlotter(plotter), BorderLayout.CENTER); } /** * @param args the command line arguments */ public static void main(String[] args) { JFrame frame = new JFrame("Embedded AIDA"); JMenuBar bar = new JMenuBar(); JMenu menu = new JMenu("File"); JMenuItem item = new JMenuItem(new ExitAction()); menu.add(item); bar.add(menu); frame.setJMenuBar(bar); frame.setContentPane(new AIDAEmbed()); frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); frame.pack(); frame.show(); } private static class ExitAction extends AbstractAction { ExitAction() { super("Exit"); } public void actionPerformed(ActionEvent e) { System.exit(0); } } }