📄 frame1.java~84~
字号:
package datas2;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JLabel;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import javax.swing.JScrollPane;
import java.awt.Font;
import javax.swing.*;
import javax.swing.BorderFactory;
import java.awt.Dimension;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeSelectionEvent;
///////////////////////////////////////////////////////
class Branch{
DefaultMutableTreeNode node;
public Branch(String[] tree){
node = new DefaultMutableTreeNode(tree[0]);
for (int i = 1; i < tree.length; i++) {
node.add(new DefaultMutableTreeNode(tree[i]));
}
}
public DefaultMutableTreeNode node(){
return node;
}
}
///////////////////////////////////////////////////////
public class Frame1 extends JFrame implements TreeSelectionListener{
Runn run = new Runn();
////////////////////////////////
String[][] tree = {
{"编码解码","Huffman编码解码"},
{"最短路径","Dijkstra算法"},
{"排序算法","冒泡排序","插入排序","选择排序","希尔排序","归并排序","快速排序","堆排序"},
};
static int i = 0;
DefaultMutableTreeNode root1,child,chosen;
DefaultTreeModel model;
//////////////////////////////////
sortPanel sortP = new sortPanel();//声明
DijPanel dijP = new DijPanel() ;//声明
hufPanel hufP = new hufPanel() ;//声明
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenuItem jMenuFileExit = new JMenuItem();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
XYLayout xYLayout1 = new XYLayout();
JScrollPane jScrollPane1 = new JScrollPane();
JPanel jPanel1 = new JPanel();
CardLayout cardLayout1 = new CardLayout();
JTree jTree1 = new JTree();
JPanel jPanel2 = new JPanel();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
///////////////////////////////////////
root1 = new DefaultMutableTreeNode("数据结构");
jTree1 = new JTree(root1);
model = (DefaultTreeModel)jTree1.getModel();
///////////////////////////////////////
contentPane = (JPanel) getContentPane();
contentPane.setLayout(xYLayout1);
setSize(new Dimension(650, 600));
setTitle("Frame Title");
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));
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.
HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
contentPane.setBackground(SystemColor.textInactiveText);
contentPane.setPreferredSize(new Dimension(650, 600));
//添加卡片
jPanel1.setLayout(cardLayout1);
jPanel1.add("sort",sortP);
jPanel1.add("dijkstra",dijP);
jPanel1.add("huffman",hufP);
this.getContentPane().setBackground(SystemColor.menu);
this.setForeground(SystemColor.menu);
jMenuBar1.add(jMenuFile);
jMenuFile.add(jMenuFileExit);
jMenuBar1.add(jMenuHelp);
jMenuHelp.add(jMenuHelpAbout);
setJMenuBar(jMenuBar1);
contentPane.add(jScrollPane1, new XYConstraints(0, 0, 150, 600));
jScrollPane1.getViewport().add(jTree1);
contentPane.add(jPanel1, new XYConstraints(149, 0, 503, 600));
this.getContentPane().add(jPanel2, new XYConstraints(143, 0, 317, 528));
for (int i = 0; i < tree.length;) {
child = new Branch(tree[i++]).node();
chosen = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
if(chosen == null)
{
chosen = root1;
}
model.insertNodeInto(child, chosen, 0);
}
///添加事件树
//jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
jTree1.addTreeSelectionListener(this);
}
//处理树的事件
public void valueChanged(TreeSelectionEvent e)
{
//int max = Integer.parseInt(sortP.jTextField1.getText());//取得数组的大小
JTree tree = (JTree) e.getSource();
//利用JTree的getLastSelectedPathComponent()方法取得目前选取的节点.
DefaultMutableTreeNode selectionNode =
(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
String nodeName = selectionNode.toString();
//判断是否为树叶节点,若是则显示文件内容,若不是则不做任何事。
if(nodeName == "冒泡排序")
{
sortP.jTextArea1.setText("");
cardLayout1.show(jPanel1,"sort");
sortP.jTextField2.setText(nodeName);
}
else if (nodeName == "插入排序")
{
sortP.jTextArea1.setText("");
cardLayout1.show(jPanel1,"sort");
sortP.jTextField2.setText(nodeName);
}
else if(nodeName == "选择排序")
{
sortP.jTextArea1.setText("");
cardLayout1.show(jPanel1,"sort");
sortP.jTextField2.setText(nodeName);
}
else if(nodeName == "希尔排序")
{
sortP.jTextArea1.setText("");
cardLayout1.show(jPanel1,"sort");
sortP.jTextField2.setText(nodeName);
}
else if(nodeName == "归并排序")
{
sortP.jTextArea1.setText("");
cardLayout1.show(jPanel1,"sort");
sortP.jTextField2.setText(nodeName);
}
else if(nodeName == "快速排序")
{
sortP.jTextArea1.setText("");
cardLayout1.show(jPanel1,"sort");
sortP.jTextField2.setText(nodeName);
}
else if (nodeName == "Dijkstra算法")
{
cardLayout1.show(jPanel1,"dijkstra");
}
else if(nodeName == "Huffman编码解码")
{
cardLayout1.show(jPanel1,"huffman");
}
}
/**
* File | Exit action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
System.exit(0);
}
/**
* Help | About action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuHelpAbout_actionPerformed(ActionEvent actionEvent) {
Frame1_AboutBox dlg = new Frame1_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.setVisible(true);
}
}
class Frame1_jMenuFileExit_ActionAdapter implements ActionListener {
Frame1 adaptee;
Frame1_jMenuFileExit_ActionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuFileExit_actionPerformed(actionEvent);
}
}
class Frame1_jMenuHelpAbout_ActionAdapter implements ActionListener {
Frame1 adaptee;
Frame1_jMenuHelpAbout_ActionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuHelpAbout_actionPerformed(actionEvent);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -