SiteMap

2012年10月16日火曜日

Eclipse - 自動完成

windows->Preferences->Java->Editor->Content Assist->
Auto Activation->
Enable auto activation , ->check
Auto activation delay(ms) , 0~200 (depend on yourself)
Auto activation triggers for Java, .abcdefghijklmnopqrstuvwxyzACBDEFGHIJKLMNOPQRSTUVWXYZ(,
Auto activation triggers for Javadoc, needn't to setting



Eclipse - 更改字型or字體大小

windows  preference → appearance → Colors and Fonts

如果你用的語言是 Java 則打開 Java 的樹狀列表, 

Java  Java Editor Text Font (set to default: Text Font), 
其他語言類推.

如果要更改的是 xml 檔案的話

Basic  Text Font

2012年10月11日木曜日



以下是我从http://www.189works.com/portal.php?mod=view&aid=46816看到的部分内容:

java @override 报错处理

有时候在自己电脑上编译通过的java代码,在别人那里却编译不通过,总是@override报错,把@override去掉就好了,但不能从根本上解决问题。

这是jdk的问题,@Override是JDK5就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override 而JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。

首先要确保安装了jdk 1.6,

然后,在eclipse中修改配置,在 Windows->Preferences-->java->Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译下;

如果还是不行,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译下。

我刚刚开始学习android,我用的JDK版本已经是1.7了,在照着书上的例子敲代码,有监听器的例子都出现了@Override的问题,照着以上方法最后一步,发现工程的compiler compliance level默认是1.5,改成1.6就没有问题了。

2012年9月29日土曜日


GD01
http://pastie.org/4858423

GD02.java
http://pastie.org/4858399
GD02_main.xml
http://pastie.org/4858404
GD02_list.xml
http://pastie.org/4858409

GD03
http://pastie.org/4858413

http://pastebin.com/
http://pastie.org/

2012年9月27日木曜日

Eclipse - 收納, 展開全部的程式碼

有些程式碼方法太多, 眼花撩亂
全部收起來可以紓解一下

01.畫面上程式碼工作區塊左邊邊緣, 滑鼠左鍵
02.選擇 Folding
03.Expand All 展開全部程式碼
   Collapse All 收納全部程式碼

2012年9月14日金曜日

使用Eclipse統一更改原始碼中的變數名稱


使用Eclipse統一更改原始碼中的變數名稱
(Refactor, 重構)

有時候會覺得變數名稱取的實再是不恰當, 但是
想要更改的時候, 整分程式碼裡頭已經不知道用到
哪裡去了, 變數名稱一改, 很多地方都會出錯.

剛好Eclipse有這個功能可以直接一口氣修改整個
程式碼裡頭的變數, 例如

有個BufferedWriter, 名稱叫 out , 我想要把它改成outBW, 以下步驟:



將游標移動到變數上面, 這時候eclipse會替變數上色,
001.png
滑鼠右鍵選擇 Refacotr -> Rename
002.png

eclispe跳出提示, 這時候修改名稱, 修改完成按下Enter
003.png
eclipse檢查完整個原始檔之後就完成了
004.png

2012年5月30日水曜日

Eclipse - 讓Eclipse 顯示程式碼行數


Eclipse 版本3.7.2
Eclipse 預設是不顯示程式碼行數的,若要顯示其設定如下 :

Windows

Preferences

General

Editors

Text Editors

show line numbers
(打勾)

直接在左邊滑鼠右鍵

2012年5月29日火曜日

Eclipse - 預設快速鍵


Ctrl+1 快速修復(最經典的快捷鍵,就不用多說了)

Ctrl+D: 刪除當前行

Ctrl+Alt+↓ 復制當前行到下一行(復制增加)

Ctrl+Alt+↑ 復制當前行到上一行(復制增加)

Alt+↓ 當前行和下面一行交互位置(特別實用,可以省去先剪切,再粘貼了)

Alt+↑ 當前行和上面一行交互位置(同上)

Alt+← 前一個編輯的頁面, 在用過F3跳轉之後特別有用, 基於Navigation History

Alt+→ 下一個編輯的頁面(當然是針對上面那條來說了)

Alt+Enter 顯示當前選擇資源(工程,or 文件 or文件)的屬性

Shift+Enter 在當前行的下一行插入空行(這時鼠標可以在當前行的任一位置,不一定是最後)

Shift+Ctrl+Enter 在當前行插入空行(原理同上條)

Ctrl+Q 定位到最後編輯的地方

Ctrl+L 定位在某行 (對於程序超過100的人就有福音了)

Ctrl+M 最大化當前的Edit或View (再按則反之)

Ctrl+/ 註釋當前行,再按則取消註釋

Ctrl+O 快速顯示 OutLine , 顯示目前類別的所有方法(Method)

Ctrl+T 快速顯示當前類的繼承結構

Ctrl+W 關閉當前Editer

Ctrl+K 參照選中的Word快速定位到下一個

Ctrl+E 快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)

Ctrl+/(小鍵盤) 折疊當前類中的所有代碼

Ctrl+×(小鍵盤) 展開當前類中的所有代碼

Ctrl+Space 代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)

Ctrl+Shift+E 顯示管理當前打開的所有的View的管理器(可以選擇關閉,激活等操作)

Ctrl+J 正向增量查找(按下Ctrl+J後,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了)

Ctrl+Shift+J 反向增量查找(和上條相同,只不過是從後往前查)

Ctrl+Shift+F4 關閉所有打開的Editer

Ctrl+Shift+X 把當前選中的文本全部變味小寫

Ctrl+Shift+Y 把當前選中的文本全部變為小寫

Ctrl+Shift+F 格式化當前代碼

Ctrl+Shift+P 定位到對於的匹配符(譬如{}) (從前面定位後面時,光標要在匹配符裡面,後面到前面,則反之)

下面的快捷鍵是重構裡面常用的,本人就自己喜歡且常用的整理一下(注:一般重構的快捷鍵都是Alt+Shift開頭的了)

Alt+Shift+R 重命名 (是我自己最愛用的一個了,尤其是變量和類的Rename,比手工方法能節省很多勞動力)

Alt+Shift+M 抽取方法 (這是重構裡面最常用的方法之一了,尤其是對一大堆泥團代碼有用)

Alt+Shift+C 修改函數結構(比較實用,有N個函數調用了這個方法,修改一次搞定)

Alt+Shift+L 抽取本地變量( 可以直接把一些魔法數字和字符串抽取成一個變量,尤其是多處調用的時候)

Alt+Shift+F 把Class中的local變量變為field變量 (比較實用的功能)

Alt+Shift+I 合併變量(可能這樣說有點不妥Inline)

Alt+Shift+V 移動函數和變量(不怎麼常用)

Alt+Shift+Z 重構的後悔藥(Undo)
(注由於csdn的blog經常上不去,大家有空可以去http://spaces.msn.com/members/samlinzhang/看看我的blog)
本blog個人添加:
F2 修改文件名字,有時這對於復制名字很有用,個人非常喜歡。
Ctrl+Shift+O 最高效的快捷鍵,導入未導入的包,刪除多餘的包。
Ctrl+Shift+/ 註釋代碼塊,java和jsp文件有所不同。
Ctrl+Shift+W 關閉當前所有打開文件。

Ctrl+Shift+L 彈出所有快捷方式提示框

Alt+Shift+X 彈出運行ant、java文件、junit等快捷方式,非常實用。
TemplateAlt + /
修改處:窗口->喜好設定->工作台->按鍵->編輯->內容輔助。
個人習慣:Shift+SPACE(空白)
簡易說明:編輯程序代碼時,打sysout +Template激活鍵,就
會自動出現:System.out.println(); 
按下右下角Ctrl左邊的按鍵,將彈出所在地點的菜單,省了右鍵,真好。

Ctrl+F2 將鍵盤游標移動到想要尋找api定義的方法上面(另:滑鼠對該方法點一下), 然後按下
             Ctrl+F2, Eclipse會連線到Orcal網站查詢該api

2012年5月24日木曜日

在Firefox用筆記本Note來檢視原始檔

在Firefox用筆記本Note來檢視原始檔

可以用以下方式, 變更 Firefox 檢視原始檔的程式 :

1) 網址列輸入 about:config
2) 輸入篩選條件 view_source.editor.external,  雙擊滑鼠即可從 false 變更為 true
3) 輸入篩選條件 view_source.editor.path,  雙擊滑鼠設定為 "要使用的程式路徑"
4) 重新啟動 Firefox 即可.

2012年5月11日金曜日

如何關掉drwtsn32

如何關掉drwtsn32

關鍵字:關閉、Dr. Watson、drwtsn32、程式執行錯誤、偵錯程式

Dr.Watson是 Windows的系統維護工具,當系統或軟體執行錯誤時,它會記錄下錯誤發生時的資訊,供程式系統管理人員使用
不過這個工具對於一般的使用者來說,幾乎沒有用處,乾脆將此功能取消,避免程式錯誤時系統要花時間撰寫用不到的記錄檔,還可以節省硬碟空間喔...


每當電腦程式執行錯誤時
drwtsn32.exe這Debug程式就會執行一次
並出現錯誤訊息,可能會造成困擾

而這個是可以關掉的,遇到這情況請依照以下步驟,

方法一:
按下桌面左下角的"開始",點選功能選單中的"執行",在出現的"執行"對話盒中的"開啟"方框中輸入"DRWTSN32",再按下"確定"。
接著會出現"Dr.Watson for Windows"對話盒,取消"選項"方塊中所有項目的勾選,再按下"確定"


方法二:
(注意:不正常的修改登錄可能導致系統發生問題)

將以下藍綠色文字,用記事本存成名為 drwtsn32.reg
副檔名為reg的登錄項目檔,並雙擊執行登錄

==================================
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Auto"="0"
"Debugger"="drwtsn32 -p %ld -e %ld -g"
"UserDebuggerHotKey"=dword:00000000

==================================
之後就不會再出現訊息了
(像是卡巴會一直跳出煩人的訊息,這也是個解決方式)

註:
Auto,是指當錯誤發生時,是否執行預設的Debug程式(0表否;1表是)
Debugger,是Debug程式路徑及指令,這可以不用管它
UserDebuggerHotKey,是使用者Debug程式快速鍵,也可以不管它


如何刪除以前當機的傾印紀錄:
請將
C:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson
底下 user.dmp與 drwtsn32.log檔案刪除即可

說明文件(drwtsn32.chm)請查閱:
C:\WINDOWS\Help\drwtsn32.chm

2012年2月24日金曜日

安裝GWT

想要在Eclipse上面使用GWT的話, 以下是安裝流程:

01.
安裝Eclipse, 到官網下載(此次下載的是Eclipse Class)
到現在為止(2012-02-24)的版本是3.7, 解壓縮後找個地方放即可使用.
02.
安裝ADT  Plugin for Eclipse套件
pic
03.
安裝Eclipse的GWT Plugin, 安裝方法為Help -> Install New Software, 加入下面這個 Repository:
http://dl.google.com/eclipse/plugin/3.7
如果手上的Eclipse不是3.7的話, 請隨著自己的版本更改url的版號
pic

PS.
如果沒安裝ADT Plugin for Eclipse就直接安裝GWT Plugin的話, 會出現以下的err message,
------------------------------------------------------------------------------
Cannot complete the install because one or more required items could not be found.
  Software being installed: Google App Engine Tools for Android 2.5.1.v201201120043-rel-r37 (com.google.gdt.eclipse.mobile.android.feature.feature.group 2.5.1.v201201120043-rel-r37)
  Missing requirement: com.google.gdt.eclipse.mobile.android 2.5.1.v201201120043-rel-r37 requires 'bundle com.android.ide.eclipse.adt 12.0.0' but it could not be found
  Cannot satisfy dependency:
    From: Google App Engine Tools for Android 2.5.1.v201201120043-rel-r37 (com.google.gdt.eclipse.mobile.android.feature.feature.group 2.5.1.v201201120043-rel-r37)
    To: com.google.gdt.eclipse.mobile.android [2.5.1.v201201120043-rel-r37]
-------------------------------------------------------------------------------

2012年2月17日金曜日

Eclipse - 查詢原始碼遇到Source not found...

很多朋友遇到過這樣的問題:
  開發過程中會經常查看所引用的類別(介面或方法)的源碼,但是往往在查看JDK中的類別(介面或方法)時出現提示頁面 「Source not found」,這是因為Eclipse默認設定的自帶的JDK是沒有源src的,那麼如何引入JDK和框架的源碼呢?

這裡介紹兩個設置方法:
  (查看Spring、Hibernate、Struts等框架的原始碼需要下載他們的原始碼文件,設定方法相同)

方法一:
  點擊類別(介面或方法),右鍵Open Declaration或者按F3鍵出現提示頁面「Source not found」,點擊頁面中的「Attach Source...」按鈕,點擊彈出窗口中的「External File...」按鈕找到JDK的原始碼點擊OK按鈕,設定完成
  一般JDK的源碼在安裝目錄下有個文件叫:src.zip就是,如果是spring的方法,用同樣方法,添加spring的源文件的壓縮包(應該另外下載)。

方法二:
  進入Preferences設置窗口aJavaa選擇Installed JREsa更改默認選擇的JDK為自定的有源碼的(沒有設定的點擊「Add...」添加,或者點擊「Search...」按鈕查找)aOK!
  另,在Preferences設置的JAVA / Build Path / Classpath Variables下有一個JAR_SRC變量,該變量負責設置源代碼路徑,但是該變量是不可修改的,必須由系統自動檢測。

補充:查看所引用的類別(介面或方法)的原始碼方法:
方法一:將該類別(介面或方法)名稱反白後滑鼠右鍵彈出選單,選擇Open Declaration或者直接按F3鍵,即可進入原始碼。
方法二:按住Ctrl鍵,滑鼠點擊該類別(介面或方法),即可進入原始碼。
   成功後, 原始碼會開啟在新的table.

2012年2月6日月曜日

印出V型

印出V型
012345678
*1111111*
1*11111*
11*111*
111*1*
1111*

這個V型, 它的長(從上到下)用掉5行, 寬(從左到右)用掉9個字元
想要印出來, 不是從第一行印出個斜線到第5行, 然後再印回去. 
這是不可能的 (汗. 
ps.1是方便計算用
假設在for-loop裡面, 兩個頂端的點, 第一個是1 那麼另一個為9,
這說明了什麼, 程式在第一行第一個字元的位置印出星號, * ,
然後下一個* 在第九個字元的位置印出, 中間相差8 個字元,
第二行在第二個字元的位置印出* 第8 個字元印出另一個* ,相差6,
以下列出關係

第一個*
|   中間空格
|   |   第二個*
1 + 8   9
2 + 6   8
3 + 4   7
4 + 2   6
5 + 0   5 

跟印出直角三角形之前一樣, 如果把圖形座標化的話, 右上角為(0,0), 
兩個頂點的座標為
(0,0), (0,8)
(1,1), (1,7)
(2,2), (2,6)
....
(4,4)

這樣大概可以看出規律了, 首先每行的第一個星號(*), 會在x=y的地方
印出來, 下一個星號(*)會在x+y=8的地方印出, 其他地方則用空白填滿. 

---------------------------------------------------------------
public class Example {
	public static void main(String[] argv) {
		for (int y = 0; y < 5; y++) {
			for (int x = 0; x < 9; x++)
				if (x == y || ((x + y == 8))) {
					System.out.print("*");
				} else {
					System.out.print(" ");
				}
			System.out.println();
		}
	}
}
----------------------------------------------------------------
第一個for-loop負責印出斷行, 第二個在x=y以及x=y=8的時候會印出星號(*),
否則則印出空格.

印出圖形

印出星號 print star (*)
最簡單的直角三角形 (Right Triangle)
http://mathworld.wolfram.com/RightTriangle.html
=================================================
Result
*
**
***
-------------------------------------------------------------
1.
public class Example {
    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
=================================================
continue...

2012年1月3日火曜日

C语言转义字符和格式控制符参考

C语言转义字符和格式控制符参考

 From


第四張 順序程式設計
http://wenku.baidu.com/view/2f1b96116c175f0e7cd13793.html

2012年1月2日月曜日

printf 的列印格式、控制字元、修飾子

列印格式   輸出敘述
%c 字元
%s 字串
%d 十進位整數
%u 無號十進位整數
%o 無號八進位整數
%x 無號十六進位整數,以 0 ~ f 表示
%X 無號十六進位整數,以 0 ~ F 表示
%f 浮點數,小數點型式
%e 浮點數,指數 e 型式
%E 浮點數,指數 E 型式
%g 印出 %f 與 %e 較短者
%G 印出 %F 與 %E 較短者
%p 指標位址
%% 印出百分比符號


控制字元   功能
\a 警告音
\b 倒退
\f 換頁
\n 換行
\r 歸位
\t 跳格
\' 印出單引號
\" 印申雙引號
\\ 反斜線
\/ 斜線
\d 八進位 ASCII 碼
\x 十六進位 ASCII 碼



修飾子   功能 範例
- 向左對齊 %-3d
+ 將數值的正負號顯示出來 %+5d
空白 數值為正值時,留一格空白;為負值時,顯示負號 % 6f
將固定欄位長度的數值前空白處填上 0;
與 - 修飾子同時使用時,此修飾子無效
%07.2f
數字 欄位長度,當數值的位數大於所定的欄位長度時,欄位會自動加寬它的長度   %9d
. 數值以 %e, %E, %f 型式表示時,決定小數點後所要顯示的位數 %4.3f
h 表示 short int 或是 unsigned short int %5h
l 表示 long int 或是 unsigned long int %lu
%7.2f 顯示浮點數, 小數點前顯示7位數, 小數點後顯示2位數 v= 20.52

From:
http://matis.pixnet.net/blog/post/22918475

99乘法表@Java

public class Test99
{
    public static void main(String[] args)
    {
        //print the line
        for (int i = 0 ; i < 62 ; i++)
        {
            System.out.printf("-");
        }
        System.out.println("\n");
        //out loop
        for (int i=1 ; i < 10 ; i++)
        {
            //inner loop
            for (int j = 1 ; j < 10 ; j++)
            {
                System.out.printf ("%1dx%1d=%2d ",i,j,i*j);
            }
            System.out.println ("\n");
        }
       
        //print the line
        for (int i = 0 ; i < 62 ; i++)
        {
            System.out.printf("-");
        }
    }
}