JTable預設用滑鼠左鍵選擇row
那如果要用右鍵選擇並執行其他動作呢?
// BUTTON3代表滑鼠右鍵
if(evt.getButton() == MouseEvent.BUTTON3){
Point point = evt.getPoint();
int row = table.rowAtPoint(point);
ListSelectionModel listModel = table.getSelectionModel();
listModel.setSelectionInterval(row, row);
//要執行的動作
}
另外,使用ListSelectionModel的clearSelection()可以清除已選擇的row
2015年5月28日 星期四
2015年5月27日 星期三
在phpMyAdmin新增組合鍵(Composite Key)
SQL中可以設定多個欄位組合成一個主鍵,稱為組合鍵(Composite Key)
用SQL與法可以這樣加入:
用SQL與法可以這樣加入:
CONSTRAINT name_of_primary_key PRIMARY KEY (column1, column2)
在phpMyAdmin也可以很方便的設定:
1.點"索引"
2.增加一個新的索引
3.索引類型選PRIMARY
然後新增欄位,再選擇要設定為組合鍵的欄位
2015年5月15日 星期五
2015年5月6日 星期三
取得Date或Calendar中的年、月、日
Java在sdk 1.1後刪除了 Date和 Calendar中的 getDay等function
改由 Calendar.get(int field) 取代
範例:
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int day = calendar.get(Calendar.DATE);
int month = calendar.get(Calendar.MONTH) + 1;
int year = calendar.get(Calendar.YEAR);
因為calendar中的月份是由0算起 (也就是說如果現在是一月,month輸出為0)
所以上方的month我讓他加1
同樣,Calendar中的setYear等function也被取消了,可用Calendar.set(field, value)或Calendar.set(year, month, date)替代
範例:
calendar.set(Calendar.YEAR, 2015);
改由 Calendar.get(int field) 取代
範例:
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int day = calendar.get(Calendar.DATE);
int month = calendar.get(Calendar.MONTH) + 1;
int year = calendar.get(Calendar.YEAR);
因為calendar中的月份是由0算起 (也就是說如果現在是一月,month輸出為0)
所以上方的month我讓他加1
同樣,Calendar中的setYear等function也被取消了,可用Calendar.set(field, value)或Calendar.set(year, month, date)替代
範例:
calendar.set(Calendar.YEAR, 2015);
2015年3月16日 星期一
Jackcess(用來連接Access的Java Library) : (二) 開啟Access檔案
最基本的開啟方法:
是不是很簡單呢?
但是如果要應付不同的需求就得增加點變化了
Q1: 如果我的Access資料庫有密碼呢?
確認一下你的專案是否有加入jackcess-encrypt(詳見上一篇)
然後將上面的程式碼改成這樣:
Q2: Access97打不開!
由於Jackcess目前只支援Access 97 read only
所以開啟97的mdb時必須聲明唯讀
Q3: 讀取出來的資料變成亂碼怎麼辦?
像我的mdb檔中文字是用big5編碼
讀出來全是亂碼
Jackcess一樣提供了編碼解決方案:
Database db = DatabaseBuilder.open(new File("mydb.mdb"));
是不是很簡單呢?
但是如果要應付不同的需求就得增加點變化了
Q1: 如果我的Access資料庫有密碼呢?
確認一下你的專案是否有加入jackcess-encrypt(詳見上一篇)
然後將上面的程式碼改成這樣:
File dbFile = new File("mydb.mdb");
CryptCodecProvider codec = new CryptCodecProvider("my password");
Database db = new DatabaseBuilder(dbFile).setCodecProvider(codec).open();
Q2: Access97打不開!
由於Jackcess目前只支援Access 97 read only
所以開啟97的mdb時必須聲明唯讀
Database db = new DatabaseBuilder(dbFile).setReadOnly(true).open();
Q3: 讀取出來的資料變成亂碼怎麼辦?
像我的mdb檔中文字是用big5編碼
讀出來全是亂碼
Jackcess一樣提供了編碼解決方案:
Database db = new DatabaseBuilder(dbFile).setCharset(Charset.forName("big5")).open();
2015年3月12日 星期四
Jackcess(用來連接Access的Java Library) : (一) 將Jackcess library加入專案
因為工作的關係需要將一個古老的Access 97資料庫轉換到MySQL
但大部分的資料庫library都不支持Access 97
最後終於找到這個 Jackcess
支援Access 2000-2010 read/write
不過Access 97只有read only
以下將介紹如何把Jackcess加入你的專案
1.
先下載 jackcess-x.x.x.jar 並加入專案
2.
使用前必須先加入一些必要的Library
Jackcess 2.0.8版需要的library如下
commons-lang-2.6.jar
commons-logging-1.2.jar
相關內容也寫在:Project Dependencies
注意:如果用commons-lang 3.x可能會出現錯誤
3.
如果你的Access資料庫有密碼,那就得再加入Jackcess Encrypt
下載並加入以下library:
jackcess-encrypt-x.x.x.jar
bcprov-jdk15
使用方法在官網有簡要的說明:jackcess cookbook
我接下來也會再作相關的筆記
Jackcess(用來連接Access的Java Library) : (二) 開啟Access檔案
但大部分的資料庫library都不支持Access 97
最後終於找到這個 Jackcess
支援Access 2000-2010 read/write
不過Access 97只有read only
以下將介紹如何把Jackcess加入你的專案
1.
先下載 jackcess-x.x.x.jar 並加入專案
2.
使用前必須先加入一些必要的Library
Jackcess 2.0.8版需要的library如下
commons-lang-2.6.jar
commons-logging-1.2.jar
相關內容也寫在:Project Dependencies
注意:如果用commons-lang 3.x可能會出現錯誤
3.
如果你的Access資料庫有密碼,那就得再加入Jackcess Encrypt
下載並加入以下library:
jackcess-encrypt-x.x.x.jar
bcprov-jdk15
使用方法在官網有簡要的說明:jackcess cookbook
我接下來也會再作相關的筆記
Jackcess(用來連接Access的Java Library) : (二) 開啟Access檔案
2015年3月6日 星期五
NetBeans中的自動補齊(Java)
Tools -> Options -> Code Completion
Language 選擇 Java -> 將 Auto Popup on Typing Any Java Identifier Part 打勾
Language 選擇 Java -> 將 Auto Popup on Typing Any Java Identifier Part 打勾
訂閱:
文章 (Atom)




