?? main.java
字號:
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("校園導航系統(tǒng)");
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("聯(lián)通廣場","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 + -