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

📄 main.java

📁 java实现的校园导航系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package gilyou.liu;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//import java.awt.event.WindowListener;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

public class Main extends JFrame {

	private static final long serialVersionUID = 1L;

	final private int NodeCount = 10;
	
	@SuppressWarnings("unused")
	private float[][] adjency = {{0,10,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE},
			                       {10,0,20,20,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE},
									{Float.MAX_VALUE,20,0,20,Float.MAX_VALUE,Float.MAX_VALUE,40,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE},
									{Float.MAX_VALUE,20,20,0,20,10,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE},
									{Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,20,0,15,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE},
									{Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,10,15,0,Float.MAX_VALUE,10,Float.MAX_VALUE,Float.MAX_VALUE},
									{Float.MAX_VALUE,Float.MAX_VALUE,40,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,0,50,40,Float.MAX_VALUE},
									{Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,10,50,0,50,Float.MAX_VALUE},
									{Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,40,50,0,30},
									{Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,30,0}};

	private int[][] path = new int[NodeCount][NodeCount];
	
	private JComboBox dstComboBox = null;

	private JComboBox srcComboBox = null;

	private JButton exitButton = null;

	private JButton okButton = null;

	private ViewPanel mainBuilding;

	private ViewPanel unifSqare;

	private ViewPanel libary;

	private ViewPanel artBuilding;

	private ViewPanel park;

	private ViewPanel sunPlatform;

	private ViewPanel basketField;

	private ViewPanel footField;

	private ViewPanel huiBuilding;

	private ViewPanel swim;  //  @jve:decl-index=0:

	private JLabel dstLabel = null;

	private JLabel srcLabel = null;

	private JPanel jContentPane = null;

	private JButton allButton = null;
	
	private Queue queue = new Queue();
	
	private Queue tempQueue = null;
	
	static int count = 0;
	/**
	 * This is the default constructor
	 */
	public Main() {
		super();
		initialize();
		int i,j,k;
		float[][] tempAdj = new float[NodeCount][NodeCount];
		for(i = 0; i < NodeCount; i++)
			for(j = 0; j < NodeCount; j++){
				if(adjency[i][j] != Float.MAX_VALUE)
					path[i][j] = j + 1;
				else
					path[i][j] = 0;
				tempAdj[i][j] = adjency[i][j];
			}
		for(k = 0; k < NodeCount; k++)
			for(i = 0; i < NodeCount; i++)
				for(j = 0; j < NodeCount; j++){
					if(tempAdj[i][j] > tempAdj[i][k] + tempAdj[k][j]){
						tempAdj[i][j] = tempAdj[i][k] + tempAdj[k][j];
					    path[i][j] = path[i][k];
					}
				}
		
	}
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setContentPane(getJContentPane());
		this.setBackground(Color.green);
		this.setName("mainFrame");
		this.setResizable(false);
		this.setTitle("校园导航系统");
		this.setVisible(true);
		this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
		this.setSize(Toolkit.getDefaultToolkit().getScreenSize().width,Toolkit.getDefaultToolkit().getScreenSize().height);
		this.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				onExit();
			}
		});
		this.setResizable(false);
	}
	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			dstLabel = new JLabel();
			dstLabel.setBounds(new Rectangle(31, 688, 68, 18));
			dstLabel.setBackground(Color.blue);
			dstLabel.setForeground(Color.magenta);
			dstLabel.setText("目的景点:");
			dstLabel.setOpaque(true);
			dstLabel.setHorizontalAlignment(JLabel.RIGHT);
			srcLabel = new JLabel();
			srcLabel.setBounds(new Rectangle(241, 688, 63, 18));
			srcLabel.setText("起始景点:");
			srcLabel.setBackground(Color.blue);
			srcLabel.setForeground(Color.magenta);
			srcLabel.setOpaque(true);
			srcLabel.setHorizontalAlignment(JLabel.RIGHT);
			
			
			jContentPane = new JPanel(){
				/**
				 * 
				 */
				private static final long serialVersionUID = 9059130871650494229L;

				public void paintComponent(Graphics g){
				g.setColor(Color.black);
				g.drawLine(mainBuilding.getX() + mainBuilding.getWidth()/2,mainBuilding.getY() + mainBuilding.getHeight()/2,unifSqare.getX() + unifSqare.getWidth()/2,unifSqare.getY() + unifSqare.getHeight()/2);
				g.drawLine(unifSqare.getX() + unifSqare.getWidth()/2,unifSqare.getY() + unifSqare.getHeight()/2,park.getX() + park.getWidth()/2,park.getY() + park.getHeight()/2);
				g.drawLine(unifSqare.getX() + unifSqare.getWidth()/2,unifSqare.getY() + unifSqare.getHeight()/2, libary.getX() + libary.getWidth()/2,libary.getY() + libary.getHeight()/2);
				g.drawLine(park.getX() + park.getWidth()/2,park.getY() + park.getHeight()/2, libary.getX() + libary.getWidth()/2,libary.getY() + libary.getHeight()/2);
				g.drawLine(park.getX() + park.getWidth()/2,park.getY() + park.getHeight()/2,basketField.getX() + basketField.getWidth()/2,basketField.getY() + basketField.getHeight()/2);
				g.drawLine(libary.getX() + libary.getWidth()/2,libary.getY() + libary.getHeight()/2, sunPlatform.getX() + sunPlatform.getWidth()/2,sunPlatform.getY() + sunPlatform.getHeight()/2);
				g.drawLine(sunPlatform.getX() + sunPlatform.getWidth()/2,sunPlatform.getY() + sunPlatform.getHeight()/2, footField.getX() + footField.getWidth()/2, footField.getY() + footField.getHeight()/2);
				g.drawLine(basketField.getX() + basketField.getWidth()/2,basketField.getY() + basketField.getHeight()/2,swim.getX() + swim.getWidth()/2,swim.getY() + swim.getHeight()/2);
				g.drawLine(footField.getX() + footField.getWidth()/2, footField.getY() + footField.getHeight()/2,huiBuilding.getX() + huiBuilding.getWidth()/2,huiBuilding.getY() + huiBuilding.getHeight()/2);
				g.drawLine(huiBuilding.getX() + huiBuilding.getWidth()/2,huiBuilding.getY() + huiBuilding.getHeight()/2,swim.getX() + swim.getWidth()/2,swim.getY() + swim.getHeight()/2);
				g.drawLine(swim.getX() + swim.getWidth()/2,swim.getY() + swim.getHeight()/2,artBuilding.getX() + artBuilding.getWidth()/2,artBuilding.getY() + artBuilding.getHeight()/2);	
				g.drawLine(libary.getX() + libary.getWidth()/2,libary.getY() + libary.getHeight()/2,footField.getX() + footField.getWidth()/2, footField.getY() + footField.getHeight()/2);
	            }
			};

			jContentPane.setLayout(null);
			jContentPane.setBackground(Color.green);
			jContentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			jContentPane.setSize(new Dimension(1095, 718));
			jContentPane.add(getDstComboBox(), null);
			jContentPane.add(getSrcComboBox(), null);
			jContentPane.add(getExitButton(), null);
			jContentPane.add(getOkButton(), null);
			jContentPane.add(srcLabel, null);
			jContentPane.add(dstLabel, null);
			jContentPane.add(getArtBuilding(), null);
			jContentPane.add(getPark(), null);
			jContentPane.add(getFootField(), null);
			jContentPane.add(getBasketField(), null);
			jContentPane.add(getLibary(), null);
			jContentPane.add(getSunPlatForm(), null);
			jContentPane.add(getUnifSqare(), null);
			jContentPane.add(getHuiBuilding(), null);
			jContentPane.add(getMainBuilding(), null);
			jContentPane.add(getSwim(),null);
			jContentPane.add(getAllButton(), null);		
		}
		return jContentPane;
	}
	private ViewPanel getSwim() {
		if(swim == null){
			swim = new ViewPanel("游泳馆","gilyou system");
			swim.setBounds(new Rectangle(769, 456, 87, 99));
			swim.detailTextArea.setText("景点名: " + swim.name);
			swim.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(swim.name,new ImageIcon("images/swim.jpg"),swim.introduction);
				}
			});
		}
		return swim;
	}
	private ViewPanel getUnifSqare(){
		if(unifSqare == null){
			unifSqare = new ViewPanel("联通广场","gilyou system");
			unifSqare.setBounds(new Rectangle(158, 395, 87, 99));
			unifSqare.detailTextArea.setText("景点名: " + unifSqare.name);
			unifSqare.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(unifSqare.name,new ImageIcon("images/unifSqare.jpg"),unifSqare.introduction);
				}
			});
		}
		return unifSqare;
	}
	private ViewPanel getLibary(){
		if(libary == null){
			libary = new ViewPanel("图书馆","gilyou system");
			libary.setBounds(new Rectangle(327, 280, 87, 99));
			libary.detailTextArea.setText("景点名: " + libary.name);
			libary.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(libary.name,new ImageIcon("images/libary.jpg"),libary.introduction);
				}
			});
		}
		return libary;
	}
	private ViewPanel getMainBuilding() {
		if(mainBuilding == null){
			mainBuilding = new ViewPanel("主楼","gilyou system");
			mainBuilding.setBounds(new Rectangle(1, 389, 87, 99));
			mainBuilding.detailTextArea.setText("景点名: " + mainBuilding.name);
			mainBuilding.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(mainBuilding.name,new ImageIcon("images/mainBuilding.jpg"),mainBuilding.introduction);
				}
			});
		}
		return mainBuilding;
	}
	private ViewPanel getSunPlatForm(){
		if(sunPlatform == null){
			sunPlatform = new ViewPanel("阳光讲坛","gilyou system");
			sunPlatform.setBounds(new Rectangle(372, 27, 87, 100));
			sunPlatform.detailTextArea.setText("景点名: " + sunPlatform.name);
			sunPlatform.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(mainBuilding.name,new ImageIcon("images/mainBuilding.jpg"),mainBuilding.introduction);
				}
			});
		}
		return sunPlatform;

⌨️ 快捷键说明

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