在mapxtreme 中visualMapJ1MouseClicked 事件只能便用左鍵,如果想要右鍵彈出信息的話,非常的不方便,下面是一個(gè)臨時(shí)的解決辦法:
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()); //在鼠標(biāo)的地方彈出
infoToolListener.clearInfo(); //清除上次信息
}
} else if (evt.getButton() == MouseEvent.BUTTON3){ //如果點(diǎn)的是鼠標(biāo)右鍵,把它模擬成左鍵
try {
Robot robot = new Robot(); // 建個(gè)機(jī)器人
robot.mousePress(InputEvent.BUTTON1_MASK); //模擬左鍵按下
robot.mouseRelease(InputEvent.BUTTON1_MASK); //左鍵彈起
} catch (AWTException ex) {
ex.printStackTrace();
}
}
}
我嘗試了很多辦法,因?yàn)閙apxtreme 中有很多類都是受保護(hù)的,在自己的程序中沒法使用,而且,它耦合度非常的高,我曾經(jīng)想把其中幾個(gè)類反編譯過來使用,結(jié)果發(fā)現(xiàn),需要反編譯的類越來越多,以至于最后可能要把整個(gè)mapxtreme都反編譯過來,所以我放棄了這種想法,只好用模擬實(shí)現(xiàn),另外,MapMouseEvent 繼承了 MouseEvent 但是沒有提供BUTTON 參數(shù),使得左鍵和中鍵可以讀取到,而右鍵卻不行,所以只好用如此古怪的方法。
可能我不應(yīng)該叫它技術(shù)復(fù)雜度, 準(zhǔn)確的說法應(yīng)該是"從UFP 到SLOC 的缺省轉(zhuǎn)換率",公布出來供大家參考.
以下數(shù)據(jù)來自 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
第一代語(yǔ)言?????????????????????320
第二代語(yǔ)言?????????????????????107
第三代語(yǔ)言?????????????????????80
第四代語(yǔ)言?????????????????????20
第五代語(yǔ)言?????????????????????4
高級(jí)語(yǔ)言????????????????????????64
報(bào)表生成器?????????????????????80
我們公司希望通過語(yǔ)言復(fù)雜度來決定項(xiàng)目獎(jiǎng)金,可是哪一種語(yǔ)言技術(shù)含量更高呢? 大家來投一下票吧,
請(qǐng)選出您熟悉的五種以上語(yǔ)言,按復(fù)雜度排一下序,(最復(fù)雜的排在最前面).謝謝支持!
APL、A+、J 、ASP、Ada 、匯編語(yǔ)言、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