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

📄 main.java

📁 java实现的校园导航系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	}
	private ViewPanel getPark(){
		if(park == null){
			park = new ViewPanel("山湖公园","gilyou system");
			park.setBounds(new Rectangle(328, 546, 87, 100));
			park.detailTextArea.setText("景点名: " + park.name);
			park.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(mainBuilding.name,new ImageIcon("images/park.jpg"),mainBuilding.introduction);
				}
			});
		}
		return park;
	}
	private ViewPanel getFootField(){
		if(footField == null){
			footField = new ViewPanel("足球馆","gilyou system");
			footField.setBounds(new Rectangle(489, 170, 87, 100));
			footField.detailTextArea.setText("景点名: " + footField.name);
			footField.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(mainBuilding.name,new ImageIcon("images/mainBuilding.jpg"),mainBuilding.introduction);
				}
			});
		}
		return footField;
	}
	private ViewPanel getBasketField(){
		if(basketField == null){
			basketField = new ViewPanel("子矜园篮球场","gilyou system");
			basketField.setBounds(new Rectangle(558, 438, 87, 100));
			basketField.detailTextArea.setText("景点名: " + basketField.name);
			basketField.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(mainBuilding.name,new ImageIcon("images/mainBuilding.jpg"),mainBuilding.introduction);
				}
			});
		}
		return basketField;
	}
	private ViewPanel getHuiBuilding(){
		if(huiBuilding == null){
			huiBuilding = new ViewPanel("汇文楼","gilyou system");
			huiBuilding.setBounds(new Rectangle(674, 139, 87, 100));
			huiBuilding.detailTextArea.setText("景点名: " + huiBuilding.name);
			huiBuilding.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(mainBuilding.name,new ImageIcon("images/mainBuilding.jpg"),mainBuilding.introduction);
				}
			});
		}
		return huiBuilding;
	}
	private ViewPanel getArtBuilding(){
		if(artBuilding == null){
			artBuilding = new ViewPanel("艺术楼","gilyou system");
			artBuilding.setBounds(new Rectangle(934, 266, 87, 100));
			artBuilding.detailTextArea.setText("景点名: " + artBuilding.name);
			artBuilding.showDetailButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					showDetail(mainBuilding.name,new ImageIcon("images/mainBuilding.jpg"),mainBuilding.introduction);
				}
			});
		}
		return artBuilding;
	}
	private JComboBox getDstComboBox() {
		if (dstComboBox == null) {
			dstComboBox = new JComboBox();
			dstComboBox.setBounds(new Rectangle(106, 687, 110, 19));
			dstComboBox.addItem("主楼");
			dstComboBox.addItem("联通广场");
			dstComboBox.addItem("山湖公园");
			dstComboBox.addItem("图书馆");
			dstComboBox.addItem("阳光讲坛");
			dstComboBox.addItem("足球馆"); 
			dstComboBox.addItem("子矜园篮球场");
			dstComboBox.addItem("汇文楼");
			dstComboBox.addItem("游泳馆");
			dstComboBox.addItem("艺术楼");
		}
		return dstComboBox;
	}
	private JComboBox getSrcComboBox() {
		if (srcComboBox == null) {
			srcComboBox = new JComboBox();
			srcComboBox.setBounds(new Rectangle(318, 687, 110, 19));
			srcComboBox.addItem("主楼");
			srcComboBox.addItem("联通广场");
			srcComboBox.addItem("山湖公园");
			srcComboBox.addItem("图书馆");
			srcComboBox.addItem("阳光讲坛");
			srcComboBox.addItem("足球馆"); 
			srcComboBox.addItem("子矜园篮球场");
			srcComboBox.addItem("汇文楼");
			srcComboBox.addItem("游泳馆");
			srcComboBox.addItem("艺术楼");
		}
		return srcComboBox;
	}
	private JButton getExitButton() {
		if (exitButton == null) {
			exitButton = new JButton();
			exitButton.setBounds(new Rectangle(871, 689, 48, 19));
			exitButton.setMargin(new Insets(0, 0, 0, 0));
			exitButton.setMnemonic(KeyEvent.VK_E);
			exitButton.setToolTipText("退出系统");
			exitButton.setBorderPainted(false);
			exitButton.setText("退出(E)");
			exitButton.addMouseListener(new MouseAdapter(){
				public void mouseEntered(MouseEvent e){
					onMouseEntered(exitButton);
				}
				public void mouseExited(MouseEvent e){
					onMouseExited(exitButton);
				}
			});
			exitButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					onExit();
				}
			});
		}
		return exitButton;
	}
	private JButton getOkButton() {
		if (okButton == null) {
			okButton = new JButton();
			okButton.setBounds(new Rectangle(633, 689, 49, 19));
			okButton.setMargin(new Insets(0, 0, 0, 0));
			okButton.setMnemonic(KeyEvent.VK_O);
			okButton.setToolTipText("查询最短路径");
			okButton.setBorderPainted(false);
			okButton.setText("确定(O)");
			okButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(searchPath(srcComboBox.getSelectedIndex() + 1,dstComboBox.getSelectedIndex() + 1))
						paintPath();
					else 
						JOptionPane.showMessageDialog(Main.this, "No Such Way!");
				}
			});
			okButton.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseEntered(java.awt.event.MouseEvent e) {
					onMouseEntered(okButton);
				}
			});
			okButton.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseExited(java.awt.event.MouseEvent e) {
					onMouseExited(okButton);
				}
			});
		}
		return okButton;
	}
	private void onExit(){
		if(JOptionPane.showConfirmDialog(this,"确定退出?","确定",JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){
			System.exit(0);
		}
	}
	private void showDetail(String name,ImageIcon icon,String introduction) {
		new DetailDialog(Main.this,icon, name,introduction).setVisible(true);
		this.repaint();
	}
	private void onMouseEntered(JButton button){
		button.setBackground(Color.red);
	}
	private void onMouseExited(JButton button){
		button.setBackground(Color.white);
	}
	/**
	 * This method initializes allButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getAllButton() {
		if (allButton == null) {
			allButton = new JButton();
			allButton.setBounds(new Rectangle(749, 691, 62, 17));
			allButton.setBorderPainted(false);
			allButton.setMargin(new Insets(0, 0, 0, 0));
			allButton.setMnemonic(KeyEvent.VK_A);
			allButton.setToolTipText("显示黑龙江大学全貌图");
			allButton.setHorizontalTextPosition(SwingConstants.CENTER);
			allButton.setText("全景图(A)");
			allButton.addMouseListener(new java.awt.event.MouseAdapter() {   
				public void mouseExited(java.awt.event.MouseEvent e) {    
					allButton.setBackground(Color.white);
				}
				public void mouseEntered(java.awt.event.MouseEvent e) {
					allButton.setBackground(Color.red);
				}
			});
			allButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					new AllDialog(Main.this);
				}
			});
		}
		return allButton;
	}
	private boolean searchPath(int start, int end) {
		if(path[start - 1][end - 1] == 0)
			return false;
		int next = start;	
		do{
			switch(next){
			case 1: queue.enQueue(mainBuilding.getX() + mainBuilding.getWidth()/2,mainBuilding.getY() + mainBuilding.getHeight()/2);break;
			case 2: queue.enQueue(unifSqare.getX() + unifSqare.getWidth()/2,unifSqare.getY() + unifSqare.getHeight()/2);break;
			case 3: queue.enQueue(park.getX() + park.getWidth()/2,park.getY() + park.getHeight()/2);break;
			case 4: queue.enQueue(libary.getX() + libary.getWidth()/2,libary.getY() + libary.getHeight()/2);break;
			case 5: queue.enQueue(sunPlatform.getX() + sunPlatform.getWidth()/2,sunPlatform.getY() + sunPlatform.getHeight()/2);break;
			case 6: queue.enQueue(footField.getX() + footField.getWidth()/2, footField.getY() + footField.getHeight()/2);break;
			case 7: queue.enQueue(basketField.getX() + basketField.getWidth()/2,basketField.getY() + basketField.getHeight()/2);break;
			case 8: queue.enQueue(huiBuilding.getX() + huiBuilding.getWidth()/2,huiBuilding.getY() + huiBuilding.getHeight()/2);break;
			case 9: queue.enQueue(swim.getX() + swim.getWidth()/2,swim.getY() + swim.getHeight()/2);break;
			case 10: queue.enQueue(artBuilding.getX() + artBuilding.getWidth()/2,artBuilding.getY() + artBuilding.getHeight()/2);
			}
			next = path[next - 1][end - 1];
		}while(next != end);
		switch(next){case 1: queue.enQueue(mainBuilding.getX() + mainBuilding.getWidth()/2,mainBuilding.getY() + mainBuilding.getHeight()/2);break;
		case 2: queue.enQueue(unifSqare.getX() + unifSqare.getWidth()/2,unifSqare.getY() + unifSqare.getHeight()/2);break;
		case 3: queue.enQueue(park.getX() + park.getWidth()/2,park.getY() + park.getHeight()/2);break;
		case 4: queue.enQueue(libary.getX() + libary.getWidth()/2,libary.getY() + libary.getHeight()/2);break;
		case 5: queue.enQueue(sunPlatform.getX() + sunPlatform.getWidth()/2,sunPlatform.getY() + sunPlatform.getHeight()/2);break;
		case 6: queue.enQueue(footField.getX() + footField.getWidth()/2, footField.getY() + footField.getHeight()/2);break;
		case 7: queue.enQueue(basketField.getX() + basketField.getWidth()/2,basketField.getY() + basketField.getHeight()/2);break;
		case 8: queue.enQueue(huiBuilding.getX() + huiBuilding.getWidth()/2,huiBuilding.getY() + huiBuilding.getHeight()/2);break;
		case 9: queue.enQueue(swim.getX() + swim.getWidth()/2,swim.getY() + swim.getHeight()/2);break;
		case 10: queue.enQueue(artBuilding.getX() + artBuilding.getWidth()/2,artBuilding.getY() + artBuilding.getHeight()/2);}
		tempQueue = queue.clone();
		return true;
	}
	private void paintPath(){	
		okButton.setEnabled(false);
		Timer timer = new Timer(true);
		TimerTask timeTask = new TimerTask(){		
			public void run(){
				queue = tempQueue.clone();
				Graphics g = Main.this.getContentPane().getGraphics();
				g.setColor(Color.red);
				int oldX;
				int oldY;
				Point point = null;
				if(!queue.isEmpty())
				    point = queue.deQueue();
				oldX = point.x;
				oldY = point.y;
				while(!queue.isEmpty()){
					point = queue.deQueue();
					g.drawLine(oldX, oldY, point.x, point.y);
					try{
						   Thread.sleep(1500);
						}catch(Exception e){
							e.printStackTrace();
						}
					oldX = point.x;
					oldY = point.y;
				}
				repaint();
				if(++count == 3){
					count = 0;
				    okButton.setEnabled(true);	
					this.cancel();
				}
			}			
		};
		timer.scheduleAtFixedRate(timeTask,0, (tempQueue.array.size() + 1) * 1500);
	}
}  //  @jve:decl-index=0:visual-constraint="14,22"

⌨️ 快捷键说明

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