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 + -
显示快捷键?