在mapxtreme 中visualMapJ1MouseClicked 事件只能便用左键,如果想要右键弹出信息的话,非常的不方便,下面是一个临时的解决办法:
private void visualMapJ1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO 将在此处添加您的处理代码:
if(evt.getButton() == MouseEvent.BUTTON1){
JPopupMenu pop =new JPopupMenu(); //右键菜单
if(!infoToolListener.getInfo().equals("")){ //取回的地理信息不为空
pop.add(infoToolListener.getInfo()); //把信息加到菜单上
pop.show(evt.getComponent(),evt.getX(),evt.getY()); //在鼠标的地方弹出
infoToolListener.clearInfo(); //清除上次信息
}
} else if (evt.getButton() == MouseEvent.BUTTON3){ //如果点的是鼠标右键,把它模拟成左键
try {
Robot robot = new Robot(); // 建个机器人
robot.mousePress(InputEvent.BUTTON1_MASK); //模拟左键按下
robot.mouseRelease(InputEvent.BUTTON1_MASK); //左键弹起
} catch (AWTException ex) {
ex.printStackTrace();
}
}
}
我尝试了很多办法,因为mapxtreme 中有很多类都是受保护的,在自己的程序中没法使用,而且,它耦合度非常的高,我曾经想把其中几个类反编译过来使用,结果发现,需要反编译的类越来越多,以至于最后可能要把整个mapxtreme都反编译过来,所以我放弃了这种想法,只好用模拟实现,另外,MapMouseEvent 继承了 MouseEvent 但是没有提供BUTTON 参数,使得左键和中键可以读取到,而右键却不行,所以只好用如此古怪的方法。
可能我不应该叫它技术复杂度, 准确的说法应该是"从UFP 到SLOC 的缺省转换率",公布出来供大家参考.
以下数据来自 Jones http://www.spr.com/library/0Langtbl.htm
Access 38
Ada83 71
Ada95 49
AIShell 49
APL 32
Assembly--Basic 320
Assembly--Macro 213
Bassic--ANSI 64
Basic--Visual 32
Basic--Compiled 91
C 128
C++ 55
Cobol(ANSI85) 91
Database--Default 40
Forth 64
Fortran 77
Fortran95 71
HTML 3.0 15
Java 53
Jovial 107
Lisp 64
MachineCode 640
Modula 2 80
Pascal 91
PERL 27
PowerBuilder 16
Prolog 64
Query--Default 13
Simulation--Default 46
Spreadsheet 6
Unix Shell Scripts 107
Visual Basic 5.0 29
VisualC++ 34
第一代语言 320
第二代语言 107
第三代语言 80
第四代语言 20
第五代语言 4
高级语言 64
报表生成器 80
我们公司希望通过语言复杂度来决定项目奖金,可是哪一种语言技术含量更高呢? 大家来投一下票吧,
请选出您熟悉的五种以上语言,按复杂度排一下序,(最复杂的排在最前面).谢谢支持!
APL、A+、J 、ASP、Ada 、汇编语言、AWK 、Basic、Fortran 、Brainfuck 、C、C++ 、C#
Clipper 、COBOL 、dBase 、PASCAL、Delphi 、Forth 、FoxPro、F# 、IDL 、Java 、JavaScript
J# 、LISP 、LOGO 、Modula 、Perl 、PHP 、PL/1 、Prolog 、Python 、Ruby 、Scheme 、Smalltalk
SQL 、Tcl/Tk 、Visual Basic 、Visual FoxPro