mainframe.java

来自「1.程序基于java语言。运行要求java运行环境。即就使jdk1.2以上。否则」· Java 代码 · 共 264 行

JAVA
264
字号
package bfs;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import java.awt.Color;
import javax.swing.BorderFactory;
import java.awt.Font;
import java.io.File;

/**
 * <p>Title: 基于java语言的图的广度遍历</p>
 *
 * <p>Description: 版权所有严禁盗版</p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: 中南大学计算机0304班 </p>
 *
 * @author 李阳辉
 * @version 1.0
 */
public class mainFrame extends JFrame {
    JPanel contentPane;
    BorderLayout borderLayout1 = new BorderLayout();
    JMenuBar jMenuBar1 = new JMenuBar();
    JMenu jMenuFile = new JMenu();
    JMenuItem jMenuFileExit = new JMenuItem();
    JMenuItem jMenuOpen = new JMenuItem();

    Graph G = new Graph(); //引入图类

    JSplitPane jSplitPane = new JSplitPane();
    JTabbedPane showPane = new JTabbedPane();
    JScrollPane jScrollPane1 = new JScrollPane();
    JTextArea showArea = new JTextArea();
    JPanel controlPanel = new JPanel();
    JButton printButton = new JButton();
    JButton readButton = new JButton();
    JButton cleanAreaButton = new JButton();
    JButton BFSButton = new JButton();
    JButton shortestBFS = new JButton();
    JButton DFScircle = new JButton();
    public mainFrame() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception { //用来描写界面
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(borderLayout1);
        setSize(new Dimension(500, 450));
        setTitle("BFS应用");
        jMenuFile.setText("文件");
        jMenuFileExit.setText("退出");
        jMenuFileExit.addActionListener(new
                                        mainFrame_jMenuFileExit_ActionAdapter(this));
        jMenuOpen.setText("打开文件");
        jMenuOpen.addActionListener(new mainFrame_jMenuOpen_actionAdapter(this));
        jSplitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
        jSplitPane.setBackground(Color.lightGray);
        showPane.setBackground(new Color(0, 175, 255));
        showPane.setBorder(BorderFactory.createEtchedBorder());
        jScrollPane1.getViewport().setBackground(new Color(0, 175, 255));
        showArea.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
        showArea.setEditable(false);
        printButton.setText("图的数据");
        printButton.addActionListener(new mainFrame_printButton_actionAdapter(this));
        readButton.setText("读图");
        readButton.addActionListener(new mainFrame_readButton_actionAdapter(this));
        cleanAreaButton.setText("清空屏幕");
        cleanAreaButton.addActionListener(new
                                          mainFrame_cleanAreaButton_actionAdapter(this));
        BFSButton.setText("BFS访问");
        BFSButton.addActionListener(new mainFrame_BFSButton_actionAdapter(this));
        shortestBFS.setText("最短路径");
        shortestBFS.addActionListener(new mainFrame_shortestBFS_actionAdapter(this));
        DFScircle.setText("检查环路");
        DFScircle.addActionListener(new mainFrame_DFScircle_actionAdapter(this));
        jMenuBar1.add(jMenuFile);
        jMenuFile.add(jMenuOpen);
        jMenuFile.add(jMenuFileExit);
        contentPane.add(jSplitPane, java.awt.BorderLayout.CENTER);
        jSplitPane.add(showPane, JSplitPane.TOP);
        jSplitPane.add(controlPanel, JSplitPane.BOTTOM);
        controlPanel.add(printButton);
        controlPanel.add(readButton);
        controlPanel.add(DFScircle);
        controlPanel.add(BFSButton);
        controlPanel.add(shortestBFS);
        controlPanel.add(cleanAreaButton);
        jScrollPane1.getViewport().add(showArea);
        showPane.add(jScrollPane1, "数据输出屏");
        setJMenuBar(jMenuBar1);
        jSplitPane.setDividerLocation(350);
    }


    /**
     * File | Exit action performed.
     *
     * @param actionEvent ActionEvent
     */
    void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
        System.exit(0);
    }

    public void jMenuOpen_actionPerformed(ActionEvent e) {
        readButton_actionPerformed(e);
    }

    public void printButton_actionPerformed(ActionEvent e) {
        G.printGraph(showArea);
    }

    public void readButton_actionPerformed(ActionEvent e) {
        int kind=JOptionPane.showConfirmDialog(this,"是不是有向图,默认为无向图","选择图的类型",JOptionPane.YES_NO_OPTION);
        JFileChooser chooserOpen = new JFileChooser();
        chooserOpen.setCurrentDirectory(new File("."));
        int r = chooserOpen.showOpenDialog(null);
        String fileName = null;
        if (r == JFileChooser.APPROVE_OPTION) {
            fileName = chooserOpen.getSelectedFile().getPath();
           // System.out.println(fileName);
            G.readGraph(fileName,kind);
            G.printGraph(showArea);
            showArea.append(" \n");
        } else {
            return;
        }

    }

    public void cleanAreaButton_actionPerformed(ActionEvent e) {
        showArea.setText("");
    }

    public void BFSButton_actionPerformed(ActionEvent e) {
        showArea.append("\n");
        G.BFS(showArea);

    }

    public void shortestBFS_actionPerformed(ActionEvent e) {
        showArea.append(" \n");
        G.shortestPath(showArea);
    }

    public void DFScircle_actionPerformed(ActionEvent e) {
        showArea.append("\n");
        G.DFS(showArea);
    }

}


class mainFrame_DFScircle_actionAdapter implements ActionListener {
    private mainFrame adaptee;
    mainFrame_DFScircle_actionAdapter(mainFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.DFScircle_actionPerformed(e);
    }
}


class mainFrame_shortestBFS_actionAdapter implements ActionListener {
    private mainFrame adaptee;
    mainFrame_shortestBFS_actionAdapter(mainFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.shortestBFS_actionPerformed(e);
    }
}


class mainFrame_BFSButton_actionAdapter implements ActionListener {
    private mainFrame adaptee;
    mainFrame_BFSButton_actionAdapter(mainFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.BFSButton_actionPerformed(e);
    }
}


class mainFrame_cleanAreaButton_actionAdapter implements ActionListener {
    private mainFrame adaptee;
    mainFrame_cleanAreaButton_actionAdapter(mainFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.cleanAreaButton_actionPerformed(e);
    }
}


class mainFrame_readButton_actionAdapter implements ActionListener {
    private mainFrame adaptee;
    mainFrame_readButton_actionAdapter(mainFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.readButton_actionPerformed(e);
    }
}


class mainFrame_printButton_actionAdapter implements ActionListener {
    private mainFrame adaptee;
    mainFrame_printButton_actionAdapter(mainFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.printButton_actionPerformed(e);
    }
}


class mainFrame_jMenuFileExit_ActionAdapter implements ActionListener {
    mainFrame adaptee;

    mainFrame_jMenuFileExit_ActionAdapter(mainFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent actionEvent) {
        adaptee.jMenuFileExit_actionPerformed(actionEvent);
    }
}


class mainFrame_jMenuOpen_actionAdapter implements ActionListener {
    private mainFrame adaptee;
    mainFrame_jMenuOpen_actionAdapter(mainFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jMenuOpen_actionPerformed(e);
    }
}

⌨️ 快捷键说明

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