?? main.java
字號:
}
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 + -