⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frame1.java~296~

📁 源程序(包括最初的版本
💻 JAVA~296~
📖 第 1 页 / 共 3 页
字号:
package treeandbtreedemo;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*; //swing组件事件响应ChangeListener

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 * @version 3.1图形界面的设计
 * @version 3.2动画效果
 * @version 4.2另外一种画图方式,图标表示节点。可移动(7.12)
 * @version 4.4加入了字符串的判定(7.12)
 */

public class Frame1
    extends JFrame
    implements Runnable {
  JPanel contentPane;
  JMenuBar jMenuBar1 = new JMenuBar();
  JMenu jMenuFile = new JMenu();
  JMenuItem jMenuFileExit = new JMenuItem();
  JMenu jMenuHelp = new JMenu();
  JMenuItem jMenuHelpAbout = new JMenuItem();
  JLabel statusBar = new JLabel();
  BorderLayout borderLayout1 = new BorderLayout();
  JPanel jPanel4 = new JPanel();



  //JPanel  draw = new JPanel();



  BorderLayout borderLayout4 = new BorderLayout();
  JPanel panel = new JPanel();
  ButtonGroup buttonGroup1 = new ButtonGroup();
  GridLayout gridLayout1 = new GridLayout();
  FlowLayout flowLayout4 = new FlowLayout();

  //画板
  //DrawPanel drawTable = new DrawPanel();

  //数据对象
  private Table table = new Table(); //表格数据,记录了节点的坐标等信息
  private Tree tree = new Tree(); //树
  private BinaryTree binaryTree = new BinaryTree(); //二叉树
  private Thread autoThread = new Thread(); //基本运行线程
  private int index = -1;
  private String now = new String(); //演示的状态,线程中要用到
  private int fps = 10; //频率
  private boolean travel = false;
  JMenuItem jMenuOpen = new JMenuItem();
  JMenuItem jMenuSave = new JMenuItem();
  JMenuItem jMenuItem1 = new JMenuItem();
  JPanel jPanel1 = new JPanel();
  BorderLayout borderLayout2 = new BorderLayout();
  JPanel jPanel12 = new JPanel();
  JButton stop = new JButton();
  FlowLayout flowLayout1 = new FlowLayout();
  FlowLayout flowLayout5 = new FlowLayout();
  JPanel jPanel14 = new JPanel();
  JSlider slider = new JSlider();
  JButton reset = new JButton();
  JPanel jPanel2 = new JPanel();
  JButton auto = new JButton();
  DrawLabelPanel drawTable = new DrawLabelPanel();
  FlowLayout flowLayout3 = new FlowLayout();
  JPanel input = new JPanel();
  JTextField text = new JTextField();
  JPanel jPanel6 = new JPanel();
  JRadioButton jRadioButtonTree = new JRadioButton();
  FlowLayout flowLayout2 = new FlowLayout();
  JRadioButton jRadioButtonBT = new JRadioButton();
  JPanel jPanel3 = new JPanel();
  JPanel jPanel5 = new JPanel();
  JPanel jPanel7 = new JPanel();
  JPanel jPanel8 = new JPanel();
  JPanel jPanel9 = new JPanel();
  JButton binaryTreeInOrder = new JButton();
  JButton binaryTreePostOrder = new JButton();
  JButton treePreOrder = new JButton();
  JButton treePostOrder = new JButton();
  JPanel jPanel10 = new JPanel();
  JButton binaryTreePreOrder = new JButton();
  //private String flag=new String("");//判断是遍历二叉树还是树

  //Construct the frame
  public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  //Component initialization
  private void jbInit() throws Exception {
    contentPane = (JPanel)this.getContentPane();
    contentPane.setLayout(borderLayout1);
    this.setSize(new Dimension(600, 540));
    this.setTitle("Frame Title");
    statusBar.setText(" ");
    jMenuFile.setText("File");
    jMenuFileExit.setText("Exit");
    jMenuFileExit.addActionListener(new Frame1_jMenuFileExit_ActionAdapter(this));
    jMenuHelp.setText("Help");
    jMenuHelpAbout.setText("About");
    jMenuHelpAbout.addActionListener(new Frame1_jMenuHelpAbout_ActionAdapter(this));
    jPanel4.setLayout(gridLayout1);

    // binaryTreeInOrder.addActionListener(new UI_binaryTreeInOrder_actionAdapter(this));
    // binaryTreePostOrder.addActionListener(new
    //UI_binaryTreePostOrder_actionAdapter(this));
    borderLayout4.setHgap(5);
    borderLayout4.setVgap(5);
    panel.setLayout(borderLayout4);
    panel.setToolTipText("");
    //binaryTreeStart.addActionListener(new UI_binaryTreeStart_actionAdapter(this));
    // binaryTreePreOrder.addActionListener(new
    //UI_binaryTreePreOrder_actionAdapter(this));
    //binaryTreeText.addActionListener(new UI_binaryTreetreeText_actionAdapter(this));
    jPanel4.setPreferredSize(new Dimension(90, 274));
    //jLabel1.setText("");
    borderLayout1.setHgap(0);
    borderLayout1.setVgap(5);
    gridLayout1.setColumns(1);
    gridLayout1.setRows(7);
    gridLayout1.setVgap(0);
    jMenuOpen.setText("Open");
    jMenuSave.setText("Save");
    jMenuItem1.setToolTipText("");
    jMenuItem1.setText("Help");
    jPanel1.setLayout(borderLayout2);
    stop.setFont(new java.awt.Font("Dialog", 0, 15));
    stop.setPreferredSize(new Dimension(73, 25));
    stop.setActionCommand("pause");
    stop.setText("stop");
    stop.addActionListener(new Frame1_stop_actionAdapter(this));
    flowLayout1.setHgap(10);
    flowLayout1.setVgap(5);
    flowLayout5.setHgap(18);
    flowLayout5.setVgap(5);
    jPanel14.setBorder(BorderFactory.createEtchedBorder());
    jPanel14.setDebugGraphicsOptions(0);
    jPanel14.setPreferredSize(new Dimension(470, 39));
    jPanel14.setLayout(flowLayout1);
    slider.setOrientation(JSlider.HORIZONTAL);
    slider.setInverted(false);
    slider.setMinimum(1);
    slider.setMaximum(20);
    slider.setValue(10);
   // slider.addAncestorListener(new javax.swing.event.AncestorListener() {
     // public void ancestorAdded(AncestorEvent e) {
    //    slider_ancestorAdded(e);
    //  }
   //   public void ancestorRemoved(AncestorEvent e) {
  //    }
   //   public void ancestorMoved(AncestorEvent e) {
   //   }
  //  });
    slider.setMajorTickSpacing(10);
    slider.setMinorTickSpacing(5);
    slider.setPaintLabels(false);
    slider.setPaintTicks(false);
    slider.setPaintTrack(true);
    slider.setAlignmentX((float) 0.5);
    slider.setDebugGraphicsOptions(0);
    slider.setDoubleBuffered(false);
    slider.setPreferredSize(new Dimension(195, 24));
    slider.setRequestFocusEnabled(true);
    slider.setToolTipText("" + slider.getValue());
    slider.setVerifyInputWhenFocusTarget(true);
    slider.addChangeListener(new ChangeListener() {
      //这是一个Swing组件event响应内部类
      public void stateChanged(ChangeEvent e) {
        fps = slider.getValue();

      }
    });
    reset.setFont(new java.awt.Font("Dialog", 0, 15));
    reset.setPreferredSize(new Dimension(73, 25));
    reset.setText("reset");
    reset.addActionListener(new Frame1_reset_actionAdapter(this));
    reset.addActionListener(new Frame1_reset_actionAdapter(this));
    jPanel2.setBorder(null);
    jPanel2.setPreferredSize(new Dimension(100, 50));
    jPanel2.setLayout(flowLayout5);
    auto.setFont(new java.awt.Font("Dialog", 0, 15));
    auto.setPreferredSize(new Dimension(73, 25));
    auto.setText("auto");
    auto.addActionListener(new Frame1_auto_actionAdapter(this));
    auto.addActionListener(new Frame1_auto_actionAdapter(this));
    drawTable.setBackground(Color.white);
    drawTable.setDebugGraphicsOptions(0);
    drawTable.setPreferredSize(new Dimension(300, 200));
    drawTable.setLayout(null);
    input.setBorder(BorderFactory.createEtchedBorder());
    input.setDebugGraphicsOptions(0);
    input.setPreferredSize(new Dimension(470, 39));
    input.setLayout(flowLayout3);
    text.setDebugGraphicsOptions(0);
    text.setDoubleBuffered(false);
    text.setPreferredSize(new Dimension(330, 22));
    text.setSelectionEnd(15);
    text.setSelectionStart(11);
    text.setText("");
    text.addActionListener(new Frame1_text_actionAdapter(this));
    text.addActionListener(new Frame1_text_actionAdapter(this));
    jPanel6.setDebugGraphicsOptions(0);
    jPanel6.setPreferredSize(new Dimension(432, 49));
    jPanel6.setLayout(flowLayout2);
    jRadioButtonTree.setFont(new java.awt.Font("Dialog", 0, 13));
    jRadioButtonTree.setText("树");
    jRadioButtonTree.addActionListener(new Frame1_jRadioButtonTree_actionAdapter(this));
    jRadioButtonTree.addActionListener(new
                                       Frame1_jRadioButtonTree_actionAdapter(this));
    flowLayout2.setAlignment(FlowLayout.CENTER);
    flowLayout2.setHgap(20);
    flowLayout2.setVgap(5);
    jRadioButtonBT.setFont(new java.awt.Font("Dialog", 0, 13));
    jRadioButtonBT.setText("二叉树");
    jRadioButtonBT.addActionListener(new Frame1_jRadioButtonBT_actionAdapter(this));
    jRadioButtonBT.addActionListener(new Frame1_jRadioButtonBT_actionAdapter(this));
    jPanel3.setLayout(null);
    jPanel9.setLayout(null);
    jPanel8.setLayout(null);
    jPanel7.setLayout(null);
    jPanel5.setLayout(null);
    binaryTreeInOrder.setBounds(new Rectangle(7, 0, 82, 51));
    binaryTreeInOrder.setFont(new java.awt.Font("Dialog", 0, 12));
    binaryTreeInOrder.setAlignmentX((float) 5.0);
    binaryTreeInOrder.setActionCommand("inOrder");
    binaryTreeInOrder.setText("中序遍历");
    binaryTreeInOrder.addActionListener(new Frame1_binaryTreeInOrder_actionAdapter(this));
    binaryTreeInOrder.addActionListener(new
                                        Frame1_binaryTreeInOrder_actionAdapter(this));
    binaryTreePostOrder.setBounds(new Rectangle(7, 0, 83, 51));
    binaryTreePostOrder.setFont(new java.awt.Font("Dialog", 0, 12));
    binaryTreePostOrder.setAlignmentX((float) 0.0);
    binaryTreePostOrder.setActionCommand("postOrder");
    binaryTreePostOrder.setText("后序遍历");
    binaryTreePostOrder.addActionListener(new Frame1_binaryTreePostOrder_actionAdapter(this));
    binaryTreePostOrder.addActionListener(new
        Frame1_binaryTreePostOrder_actionAdapter(this));
    treePreOrder.setBounds(new Rectangle(7, 0, 83, 51));
    treePreOrder.setFont(new java.awt.Font("Dialog", 0, 12));
    treePreOrder.setText("先根遍历");
    treePreOrder.addActionListener(new Frame1_treePreOrder_actionAdapter(this));
    treePreOrder.addActionListener(new Frame1_treePreOrder_actionAdapter(this));
    treePostOrder.setBounds(new Rectangle(7, 0, 83, 51));
    treePostOrder.setFont(new java.awt.Font("Dialog", 0, 12));
    treePostOrder.setText("后根遍历");
    treePostOrder.addActionListener(new Frame1_treePostOrder_actionAdapter(this));
    treePostOrder.addActionListener(new Frame1_treePostOrder_actionAdapter(this));
    binaryTreePreOrder.setBounds(new Rectangle(7, 5, 83, 52));
    binaryTreePreOrder.setFont(new java.awt.Font("Dialog", 0, 12));
    binaryTreePreOrder.setPreferredSize(new Dimension(87, 29));
    binaryTreePreOrder.setActionCommand("preOrder");
    binaryTreePreOrder.setText("先序遍历");
    binaryTreePreOrder.addActionListener(new Frame1_binaryTreePreOrder_actionAdapter(this));
    binaryTreePreOrder.addActionListener(new
        Frame1_binaryTreePreOrder_actionAdapter(this));
    jPanel10.setLayout(null);
    jMenuFile.add(jMenuOpen);
    jMenuFile.add(jMenuSave);
    jMenuFile.add(jMenuFileExit);
    jMenuHelp.add(jMenuItem1);
    jMenuHelp.add(jMenuHelpAbout);
    jMenuBar1.add(jMenuFile);
    jMenuBar1.add(jMenuHelp);
    this.setJMenuBar(jMenuBar1);
    contentPane.add(statusBar, BorderLayout.SOUTH);
    contentPane.add(panel, BorderLayout.CENTER);
    jPanel4.add(jPanel3, null);
    jPanel4.add(jPanel10, null);
    jPanel10.add(binaryTreePreOrder, null);
    jPanel4.add(jPanel9, null);
    jPanel9.add(binaryTreeInOrder, null);
    jPanel4.add(jPanel8, null);
    jPanel8.add(binaryTreePostOrder, null);
    jPanel4.add(jPanel7, null);
    jPanel7.add(treePreOrder, null);
    jPanel4.add(jPanel5, null);
    jPanel5.add(treePostOrder, null);
    panel.add(jPanel1,  BorderLayout.CENTER);
    jPanel1.add(jPanel12, BorderLayout.WEST);
    jPanel1.add(jPanel2,  BorderLayout.SOUTH);
    jPanel2.add(jPanel14, null);
    jPanel14.add(reset, null);
    jPanel14.add(stop, null);
    jPanel14.add(auto, null);
    jPanel14.add(slider, null);
    jPanel1.add(drawTable,  BorderLayout.CENTER);
    jPanel1.add(jPanel6, BorderLayout.NORTH);
    jPanel6.add(input, null);
    input.add(jRadioButtonTree, null);
    input.add(jRadioButtonBT, null);
    input.add(text, null);
    panel.add(jPanel4, BorderLayout.WEST);
    buttonGroup1.add(jRadioButtonTree);
    buttonGroup1.add(jRadioButtonBT);
  }

  //File | Exit action performed
  public void jMenuFileExit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }

  //Help | About action performed
  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {

⌨️ 快捷键说明

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