📄 ui.java~28~
字号:
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,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -