📄 zoomintool.java
字号:
package mapcenter.maptools;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ZoomInTool extends MapTool{
private int x1,y1,x2,y2;
private boolean DraggFlag = false;
public ZoomInTool() {
super("/image/zoomin1.gif","/image/zoomin2.gif","放大","放大工具",'O');
ImageIcon icon = new ImageIcon(getClass().getResource("/image/zoomin.gif"));
Cursor cursor = Toolkit.getDefaultToolkit().createCustomCursor(icon.getImage(),new Point(0,0),"放大");
super.cursor = cursor;
}
public void actionPerformed(ActionEvent evt) {
super.actionPerformed(evt);
}
//============= MouseListener接口实现 =============
public void mouseEntered(MapMouse evt) {}
public void mouseExited(MapMouse evt) {}
public void mouseClicked(MapMouse evt) {}
public void mouseMoved(MapMouse evt) {}
public void mousePressed(MapMouse evt) {
x1 = evt.getX();
y1 = evt.getY();
}
public void mouseDragged(MapMouse evt) {
//======= 绘制轨迹线 ======
Graphics grap = mapView.getGraphics();
Color color = grap.getColor();
grap.setColor(Color.black);
grap.setXORMode(Color.white);
if(x2 != 0 && y2 != 0){
grap.drawRect(Math.min(x1,x2),Math.min(y1,y2),Math.abs(x1-x2),Math.abs(y1-y2));
}
x2 = evt.getX();
y2 = evt.getY();
grap.drawRect(Math.min(x1,x2),Math.min(y1,y2),Math.abs(x1-x2),Math.abs(y1-y2));
grap.setColor(color);
grap.setPaintMode();
DraggFlag = true;
}
public void mouseReleased(MapMouse evt){
try{
Image renderImage = mapView.getMapHandle().getImg();
int mapWidth = renderImage.getWidth(null);
int mapHeight = renderImage.getHeight(null);
int containW = mapView.getWidth();
int containH = mapView.getHeight();
int marginHor = (mapWidth - containW)/2;
int marginVer = (mapHeight - containH)/2;
double centerX = 0, centerY = 0, zoompen = 0.5;
if(DraggFlag == true){
centerX = x1 + (x2-x1)/2 + marginHor;
centerY = y1 + (y2-y1)/2 + marginVer;
double RectWidth = Math.abs(x2-x1);
if(RectWidth > 10)zoompen = RectWidth/containW;
}else{
centerX = x1 + marginHor;
centerY = y1 + marginVer;
}
zoomMoveing(centerX,centerY,zoompen);
mapView.getMapHandle().zoomMap(centerX,centerY,zoompen);
mapView.renderMap();
x1=x2=y1=y2=0;
DraggFlag = false;
}catch(Exception e){log.error(e);}
}
//============= KeyListener接口实现 =============
public void keyTyped(KeyEvent evt) {}
public void keyPressed(KeyEvent evt) {}
public void keyReleased(KeyEvent evt) {}
//============= MapPainter接口实现 ===============
public void paintOnMap(Graphics g) {
}
//============= ToolTipTextSetter接口实现 ========
public String getToolTipText(MapMouse evt) {return "放大";}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -