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

📄 ui.java~33~

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

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.io.*;

//import com.borland.jbcl.layout.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class UI
    extends JFrame {
  //属性
  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 jPanel1 = new JPanel();
  JTabbedPane jTabbedPane1 = new JTabbedPane();
  BorderLayout borderLayout2 = new BorderLayout();
  JPanel BinaryTreePanel = new JPanel();
  JPanel jPanel4 = new JPanel();
  BorderLayout borderLayout4 = new BorderLayout();
  JButton binaryTreePostOrder = new JButton();
  JButton binaryTreeInOrder = new JButton();
  JButton binaryTreePreOrder = new JButton();
  JPanel jPanel6 = new JPanel();
  TitledBorder titledBorder1;
  GridLayout gridLayout1 = new GridLayout();
  TitledBorder titledBorder2;
  FlowLayout flowLayout2 = new FlowLayout();
  JPanel jPanel7 = new JPanel();
  JTextField binaryTreeText = new JTextField();
  JButton binaryTreeFileOpen = new JButton();
  JLabel jLabel1 = new JLabel();
  TitledBorder titledBorder3;
  JPanel jPanel12 = new JPanel();
  JPanel jPanel2 = new JPanel();
  JPanel jPanel14 = new JPanel();
  JSlider binaryTreeSlider = new JSlider();
  FlowLayout flowLayout5 = new FlowLayout();
  JButton binaryTreeStop = new JButton();
  JButton binaryTreePause = new JButton();
  JButton binaryTreeStart = new JButton();
  JPanel jPanel15 = new JPanel();
  FlowLayout flowLayout6 = new FlowLayout();
  JButton treeStart = new JButton();
  FlowLayout flowLayout7 = new FlowLayout();
  JButton treePause = new JButton();
  JPanel jPanel16 = new JPanel();
  JButton treeFileOpen = new JButton();
  FlowLayout flowLayout8 = new FlowLayout();
  JPanel jPanel17 = new JPanel();
  GridLayout gridLayout3 = new GridLayout();
  JButton treePreOrder = new JButton();
  JButton treeStop = new JButton();
  JPanel jPanel18 = new JPanel();
  JPanel treePanel = new JPanel();
  BorderLayout borderLayout5 = new BorderLayout();
  JPanel jPanel19 = new JPanel();
  JButton treepostOrder = new JButton();
  JPanel jPanel20 = new JPanel();
  JSlider treeSilder = new JSlider();
  BorderLayout borderLayout3 = new BorderLayout();
  JTextField treeText = new JTextField();
  JLabel jLabel3 = new JLabel();
  Border border1;
  FlowLayout flowLayout1 = new FlowLayout();
  FlowLayout flowLayout3 = new FlowLayout();
  //画板
  DrawPanel treePaint = new DrawPanel();
  DrawPanel binaryTreePaint = new DrawPanel();

  //数据对象
  private Table table = new Table(); //表格数据,记录了节点的坐标等信息
  private Tree tree = new Tree(); //树
  private BinaryTree binaryTree = new BinaryTree(); //二叉树
  private Thread swingThread; //基本运行线程

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

  //Component initialization  初始化
  private void jbInit() throws Exception {
    contentPane = (JPanel)this.getContentPane();
    titledBorder1 = new TitledBorder("");
    titledBorder2 = new TitledBorder("");
    titledBorder3 = new TitledBorder("");
    border1 = BorderFactory.createCompoundBorder(BorderFactory.
                                                 createBevelBorder(BevelBorder.
        LOWERED, Color.white, Color.white, new Color(124, 124, 124),
        new Color(178, 178, 178)), BorderFactory.createEmptyBorder(2, 2, 2, 2));
    contentPane.setLayout(borderLayout1);
    this.setSize(new Dimension(600, 540));
    this.setTitle("Frame Title");
    statusBar.setText(" ");
    jMenuFile.setText("File");
    jMenuFileExit.setText("Exit");
    jMenuFileExit.addActionListener(new UI_jMenuFileExit_ActionAdapter(this));
    jMenuHelp.setText("Help");
    jMenuHelpAbout.setText("About");
    jMenuHelpAbout.addActionListener(new UI_jMenuHelpAbout_ActionAdapter(this));
    jPanel1.setLayout(borderLayout2);
    BinaryTreePanel.setLayout(borderLayout4);
    jPanel4.setLayout(gridLayout1);
    binaryTreePostOrder.setFont(new java.awt.Font("Dialog", 0, 13));
    binaryTreePostOrder.setAlignmentX( (float) 0.0);
    binaryTreePostOrder.setActionCommand("postOrder");
    binaryTreePostOrder.setText("后序遍历");
    binaryTreePostOrder.addActionListener(new
                                          UI_binaryTreePostOrder_actionAdapter(this));
    binaryTreeInOrder.setFont(new java.awt.Font("Dialog", 0, 13));
    binaryTreeInOrder.setActionCommand("inOrder");
    binaryTreeInOrder.setText("中序遍历");
    binaryTreeInOrder.addActionListener(new UI_binaryTreeInOrder_actionAdapter(this));
    binaryTreePreOrder.setFont(new java.awt.Font("Dialog", 0, 13));
    binaryTreePreOrder.setActionCommand("preOrder");
    binaryTreePreOrder.setText("先序遍历");
    binaryTreePreOrder.addActionListener(new
                                         UI_binaryTreePreOrder_actionAdapter(this));
    binaryTreePaint.setBackground(Color.white);
    binaryTreePaint.setBorder(border1);
    binaryTreePaint.setDebugGraphicsOptions(0);
    binaryTreePaint.setLayout(borderLayout3);
    jMenuBar1.setForeground(Color.black);
    jMenuBar1.setMargin(new Insets(0, 0, 0, 0));
    borderLayout2.setHgap(10);
    borderLayout2.setVgap(5);
    gridLayout1.setColumns(1);
    gridLayout1.setHgap(10);
    gridLayout1.setRows(6);
    gridLayout1.setVgap(20);
    jPanel6.setDebugGraphicsOptions(0);
    jPanel6.setPreferredSize(new Dimension(432, 49));
    jPanel6.setLayout(flowLayout2);
    flowLayout2.setAlignment(FlowLayout.RIGHT);
    flowLayout2.setHgap(20);
    flowLayout2.setVgap(5);
    borderLayout4.setHgap(10);
    borderLayout4.setVgap(5);
    binaryTreeText.setDebugGraphicsOptions(0);
    binaryTreeText.setDoubleBuffered(false);
    binaryTreeText.setPreferredSize(new Dimension(375, 22));
    binaryTreeText.setSelectionEnd(15);
    binaryTreeText.setSelectionStart(11);
    binaryTreeText.setText("");
    binaryTreeText.addActionListener(new UI_binaryTreetreeText_actionAdapter(this));
    binaryTreeFileOpen.setPreferredSize(new Dimension(25, 25));
    binaryTreeFileOpen.setText("jButton7");
    jPanel7.setBorder(BorderFactory.createEtchedBorder());
    jPanel7.setDebugGraphicsOptions(0);
    jPanel7.setPreferredSize(new Dimension(470, 39));
    jLabel1.setFont(new java.awt.Font("Dialog", 0, 13));
    jLabel1.setText("输入区");
    jPanel2.setBorder(null);
    jPanel2.setPreferredSize(new Dimension(100, 38));
    jPanel2.setLayout(flowLayout5);
    binaryTreeSlider.setOrientation(JSlider.HORIZONTAL);
    binaryTreeSlider.setMinimum(0);
    binaryTreeSlider.setPaintLabels(false);
    binaryTreeSlider.setPaintTicks(false);
    binaryTreeSlider.setPaintTrack(true);
    binaryTreeSlider.setAlignmentX( (float) 0.5);
    binaryTreeSlider.setBorder(titledBorder2);
    binaryTreeSlider.setDebugGraphicsOptions(0);
    binaryTreeSlider.setDoubleBuffered(false);
    binaryTreeSlider.setPreferredSize(new Dimension(195, 24));
    binaryTreeSlider.setRequestFocusEnabled(true);
    binaryTreeSlider.setToolTipText("");
    binaryTreeSlider.setVerifyInputWhenFocusTarget(true);
    jPanel14.setBorder(BorderFactory.createEtchedBorder());
    jPanel14.setDebugGraphicsOptions(0);
    jPanel14.setPreferredSize(new Dimension(470, 39));
    jPanel14.setLayout(flowLayout1);
    borderLayout1.setHgap(5);
    borderLayout1.setVgap(5);
    flowLayout5.setAlignment(FlowLayout.RIGHT);
    flowLayout5.setHgap(18);
    flowLayout5.setVgap(5);
    binaryTreeStop.setFont(new java.awt.Font("Dialog", 0, 15));
    binaryTreeStop.setPreferredSize(new Dimension(73, 25));
    binaryTreeStop.setText("结束");
    binaryTreePause.setFont(new java.awt.Font("Dialog", 0, 15));
    binaryTreePause.setPreferredSize(new Dimension(73, 25));
    binaryTreePause.setText("暂停");
    binaryTreeStart.setFont(new java.awt.Font("Dialog", 0, 15));
    binaryTreeStart.setPreferredSize(new Dimension(73, 25));
    binaryTreeStart.setText("开始");
    binaryTreeStart.addActionListener(new UI_binaryTreeStart_actionAdapter(this));
    flowLayout6.setHgap(20);
    treeStart.setFont(new java.awt.Font("Dialog", 0, 15));
    treeStart.setPreferredSize(new Dimension(73, 25));
    treeStart.setText("开始");
    treeStart.addActionListener(new UI_treeStart_actionAdapter(this));
    flowLayout7.setVgap(5);
    flowLayout7.setHgap(18);
    flowLayout7.setAlignment(FlowLayout.RIGHT);
    treePause.setFont(new java.awt.Font("Dialog", 0, 15));
    treePause.setForeground(Color.black);
    treePause.setPreferredSize(new Dimension(73, 25));
    treePause.setText("暂停");
    jPanel16.setLayout(gridLayout3);
    treeFileOpen.setPreferredSize(new Dimension(25, 25));
    treeFileOpen.setText("jButton7");
    flowLayout8.setAlignment(FlowLayout.RIGHT);
    flowLayout8.setHgap(20);
    flowLayout8.setVgap(5);
    jPanel17.setBorder(BorderFactory.createEtchedBorder());
    jPanel17.setDebugGraphicsOptions(0);
    jPanel17.setPreferredSize(new Dimension(470, 39));
    gridLayout3.setColumns(1);
    gridLayout3.setHgap(10);
    gridLayout3.setRows(6);
    gridLayout3.setVgap(20);
    treePreOrder.setFont(new java.awt.Font("Dialog", 0, 13));
    treePreOrder.setActionCommand("preOrder");
    treePreOrder.setText("先根遍历");
    treePreOrder.addActionListener(new UI_treePreOrder_actionAdapter(this));
    treeStop.setFont(new java.awt.Font("Dialog", 0, 15));
    treeStop.setPreferredSize(new Dimension(73, 25));
    treeStop.setText("结束");
    jPanel18.setDebugGraphicsOptions(0);
    jPanel18.setPreferredSize(new Dimension(432, 49));
    jPanel18.setLayout(flowLayout8);
    treePanel.setLayout(borderLayout5);
    borderLayout5.setHgap(10);
    borderLayout5.setVgap(5);
    jPanel19.setBorder(BorderFactory.createEtchedBorder());
    jPanel19.setDebugGraphicsOptions(0);
    jPanel19.setPreferredSize(new Dimension(470, 39));
    jPanel19.setLayout(flowLayout3);
    treepostOrder.setFont(new java.awt.Font("Dialog", 0, 13));
    treepostOrder.setActionCommand("inOrder");
    treepostOrder.setText("后根遍历");
    treepostOrder.addActionListener(new UI_treepostOrder_actionAdapter(this));
    treeText.setDebugGraphicsOptions(0);
    treeText.setDoubleBuffered(false);
    treeText.setPreferredSize(new Dimension(395, 22));
    treeText.setSelectionEnd(15);
    treeText.setSelectionStart(11);
    treeText.setText("");
    jPanel20.setBorder(null);
    jPanel20.setPreferredSize(new Dimension(100, 38));
    jPanel20.setLayout(flowLayout7);
    treePaint.setBackground(Color.white);
    treePaint.setBorder(BorderFactory.createLoweredBevelBorder());
    treePaint.setLayout(flowLayout6);
    treeSilder.setOrientation(JSlider.HORIZONTAL);
    treeSilder.setMinimum(0);
    treeSilder.setPaintLabels(false);
    treeSilder.setPaintTicks(false);
    treeSilder.setPaintTrack(true);
    treeSilder.setAlignmentX( (float) 0.5);
    treeSilder.setBorder(titledBorder2);
    treeSilder.setDebugGraphicsOptions(0);
    treeSilder.setDoubleBuffered(false);
    treeSilder.setPreferredSize(new Dimension(195, 24));
    treeSilder.setRequestFocusEnabled(true);
    treeSilder.setToolTipText("");
    treeSilder.setVerifyInputWhenFocusTarget(true);
    BinaryTreePanel.setToolTipText("二叉树面板");
    treeText.setPreferredSize(new Dimension(375, 22));
    jLabel3.setFont(new java.awt.Font("Dialog", 0, 13));
    jLabel3.setText("输入区");
    treePanel.setFont(new java.awt.Font("SansSerif", 0, 11));
    jTabbedPane1.setFont(new java.awt.Font("Dialog", 0, 15));
    flowLayout1.setHgap(10);
    flowLayout1.setVgap(5);
    flowLayout3.setHgap(10);
    contentPane.setMinimumSize(new Dimension(437, 425));
    contentPane.setPreferredSize(new Dimension(437, 425));
    BinaryTreePanel.add(jPanel12, BorderLayout.EAST);
    jPanel6.add(jPanel7, null);
    jPanel7.add(jLabel1, null);
    jPanel7.add(binaryTreeText, null);
    jPanel7.add(binaryTreeFileOpen, null);
    BinaryTreePanel.add(jPanel2, BorderLayout.SOUTH);
    jPanel2.add(jPanel14, null);
    jPanel14.add(binaryTreeStart, null);
    jPanel14.add(binaryTreePause, null);
    jPanel14.add(binaryTreeStop, null);
    jPanel14.add(binaryTreeSlider, null);
    jMenuFile.add(jMenuFileExit);
    jMenuHelp.add(jMenuHelpAbout);
    jMenuBar1.add(jMenuFile);
    jMenuBar1.add(jMenuHelp);
    this.setJMenuBar(jMenuBar1);
    contentPane.add(statusBar, BorderLayout.SOUTH);
    contentPane.add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(jTabbedPane1, BorderLayout.CENTER);
    jTabbedPane1.add(BinaryTreePanel, "二叉树");
    BinaryTreePanel.add(jPanel4, BorderLayout.WEST);
    jPanel4.add(binaryTreePreOrder, null);
    jPanel4.add(binaryTreeInOrder, null);
    jPanel4.add(binaryTreePostOrder, null);
    BinaryTreePanel.add(binaryTreePaint, BorderLayout.CENTER);
    BinaryTreePanel.add(jPanel6, BorderLayout.NORTH);
    jTabbedPane1.add(treePanel, "一般树");
    treePanel.add(jPanel15, BorderLayout.EAST);
    treePanel.add(jPanel20, BorderLayout.SOUTH);
    jPanel20.add(jPanel19, null);
    jPanel19.add(treeStart, null);
    jPanel19.add(treePause, null);
    jPanel19.add(treeStop, null);
    jPanel19.add(treeSilder, null);
    treePanel.add(jPanel16, BorderLayout.WEST);
    jPanel16.add(treePreOrder, null);
    jPanel16.add(treepostOrder, null);
    treePanel.add(treePaint, BorderLayout.CENTER);
    treePanel.add(jPanel18, BorderLayout.NORTH);
    jPanel18.add(jPanel17, null);
    jPanel17.add(jLabel3, null);
    jPanel17.add(treeText, null);
    jPanel17.add(treeText, null);
    jPanel17.add(treeFileOpen, null);
  }

  //监听

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

  //Help | About action performed
  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
    UI_AboutBox dlg = new UI_AboutBox(this);
    Dimension dlgSize = dlg.getPreferredSize();
    Dimension frmSize = getSize();
    Point loc = getLocation();
    dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
                    (frmSize.height - dlgSize.height) / 2 + loc.y);
    dlg.setModal(true);
    dlg.pack();
    dlg.show();
  }

⌨️ 快捷键说明

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