astframe.java

来自「SRI international 发布的OAA框架软件」· Java 代码 · 共 66 行

JAVA
66
字号
package antlr_oaa.debug.misc;

/* ANTLR Translator Generator
 * Project led by Terence Parr at http://www.jGuru.com
 * Software rights: http://www.antlr.org/RIGHTS.html
 *
 * $Id: ASTFrame.java,v 1.1 2002/11/08 17:37:01 agno Exp $
 */

import antlr_oaa.*;
import antlr_oaa.collections.AST;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;

public class ASTFrame extends JFrame {
  // The initial width and height of the frame
  static final int WIDTH = 200;
  static final int HEIGHT = 300;

  class MyTreeSelectionListener 
	  implements TreeSelectionListener {
	public void valueChanged (TreeSelectionEvent event) {
	  TreePath path = event.getPath();
	  System.out.println ("Selected: " + 
		path.getLastPathComponent());
	  Object elements[] = path.getPath();
	  for (int i=0; i<elements.length; i++) {
		System.out.print ("->" + elements[i]);
	  }
	  System.out.println ();
	}
  }
public ASTFrame(String lab, AST r) {
	super(lab);

	// Create the TreeSelectionListener
	TreeSelectionListener listener = new MyTreeSelectionListener();
	JTreeASTPanel tp = new JTreeASTPanel(new JTreeASTModel(r), null);
	Container content = getContentPane();
	content.add(tp, BorderLayout.CENTER);
	addWindowListener(new WindowAdapter() {
		public void windowClosing(WindowEvent e) {
			Frame f = (Frame) e.getSource();
			f.setVisible(false);
			f.dispose();
			// System.exit(0);
		}
	});
	setSize(WIDTH, HEIGHT);
}
  public static void main(String args[]) {
	// Create the tree nodes
	ASTFactory factory = new ASTFactory();
	CommonAST r = (CommonAST)factory.create(0, "ROOT");
	r.addChild((CommonAST)factory.create(0, "C1"));
	r.addChild((CommonAST)factory.create(0, "C2"));
	r.addChild((CommonAST)factory.create(0, "C3"));

	ASTFrame frame = new ASTFrame("AST JTree Example", r);
	frame.setVisible(true);
  }  
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?