public static void main(String[] args) {
    try {
      CycAccess cycAccess = CycAccess.getNewCycAccessInteractively();
      if (cycAccess == null) {
        System.exit(-1);
      }
      SubLInteractor interactor = new SubLInteractor(cycAccess);
      final JFrame frame = new JFrame();
      frame.setTitle("SubL Interactor (" + cycAccess.getHostName() + ":" + 
          cycAccess.getBasePort() + ")");
      frame.setMinimumSize(new Dimension(300, 300));
      frame.setPreferredSize(new Dimension(400, 600));
      SubLInteractorPanel interactorPanel = new SubLInteractorPanel(interactor);
      interactorPanel.addComponentListener(new ComponentAdapter() {

        public void componentHidden(ComponentEvent e) {
          System.exit(0);
        }
      });
      frame.getContentPane().add(interactorPanel);
      frame.addWindowListener(new WindowAdapter() {

        public void windowClosing(WindowEvent e) {
          System.exit(0);
        }
      });
      frame.pack();
      frame.setVisible(true);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }