你是自己用,還是也給你的朋友們用,Java做桌面程序不拿手,還要安裝一個(gè)jre才能運(yùn)行,那個(gè)東西大約16MB,給別人做桌面程序,不建議使用Java。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),安遠(yuǎn)企業(yè)網(wǎng)站建設(shè),安遠(yuǎn)品牌網(wǎng)站建設(shè),網(wǎng)站定制,安遠(yuǎn)網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,安遠(yuǎn)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
VB、Delphi、VC++,這些都比Java合適,它們跟系統(tǒng)耦合度高,有豐富的類庫(kù)可以用,GUI的組織結(jié)構(gòu)相對(duì)簡(jiǎn)單很多,不像Java的awt和swing那么繞,而且他們都可以用控件綁定數(shù)據(jù)庫(kù),操作很方便,java里面要自己動(dòng)手的
用Java做的話,建議采用access數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)是一個(gè)文件數(shù)據(jù)庫(kù),可以很方便地拿走,不需要像mysql、mssql、oracle那樣安裝很龐大的服務(wù)器,使用jdbc驅(qū)動(dòng)來(lái)連接,你可以先去網(wǎng)上找一個(gè)access的jdbc驅(qū)動(dòng)包,怎么連,怎么調(diào)用,網(wǎng)上都有詳細(xì)介紹,如果找不到,就問(wèn)我吧。記錄每天的時(shí)間,這個(gè)要專門(mén)弄一張表,記下事件名,提醒的時(shí)間等等,然后java程序啟動(dòng)時(shí),從這個(gè)事件表里讀取當(dāng)天的事件,有個(gè)執(zhí)行定時(shí)任務(wù)的工具類(好像是java.util.Timer,很久沒(méi)用了,你百度一下“java 定時(shí) 任務(wù)”就能找到了),負(fù)責(zé)到了時(shí)間給出提醒;也可以使用多線程來(lái)做,另外開(kāi)辟一個(gè)線程,每秒掃一次,看看那個(gè)事件的時(shí)間到了,然后給出提醒,這樣做CPU占用率會(huì)很高。提示,你可以搞成消息框彈出,這樣最簡(jiǎn)單,或者彈出一個(gè)Frame,同時(shí)在后臺(tái)播放一個(gè)聲音。再搞個(gè)Frame負(fù)責(zé)編輯事件。這個(gè)不難搞,就是麻煩,不過(guò)新手嘛,勤快點(diǎn)好,我現(xiàn)在越來(lái)越懶,什么都搞不動(dòng)了了。
1.確定數(shù)格式,編寫(xiě)記錄類
Record{
//記錄編號(hào)
private int id;
//提醒時(shí)間
private Time t;
//提醒信息
private String info;
}
2.確定數(shù)據(jù)訪問(wèn)方式,可以通過(guò)文件也可以通過(guò)數(shù)據(jù)庫(kù)。
寫(xiě)一個(gè)數(shù)據(jù)訪問(wèn)類,例如用文件的形式
DataAccesser{
private static syncronized File file;
//構(gòu)造函數(shù),進(jìn)行file初始化
public static DataAccesser(){
}
//寫(xiě)入記錄
public static void write(Record){
}
//根據(jù)時(shí)間讀取記錄
public static Record read(int id){
}
//根據(jù)時(shí)間讀取記錄集
public static ListRecord readSet(Time t){
}
}
3.定義存取信息隊(duì)列的類
class MessageQueue{
//保存當(dāng)前時(shí)刻以后的所有信息的時(shí)間隊(duì)列,安順序
private syncronized static ListTime;
//插入隊(duì)列
public static void put(){
//需要按時(shí)間順序插入
}
//獲得當(dāng)前時(shí)間前的時(shí)間集
public static ListTime get(){
//獲得后需要將得到的時(shí)間從列表中刪除
}
}
4.編寫(xiě)提醒類,用于提醒
class Reminder{
public void run(){
ListTime tl=getCurrentTime();
//查詢出所有
需要提醒的記錄調(diào)用remind()方法進(jìn)行提醒
}
//提醒
protected void remind(Record r){
//這里寫(xiě)如何提醒
}
//獲得當(dāng)前時(shí)間
protected Time getCurrentTime(){
}
}
5.定時(shí)器類,
//提醒的主運(yùn)行類
class Main{
static Thread thread;
public Main(){
thread=new Thread(){
public void run(){
while(true){
new Reminder().run();
try{
Thread.sleep(60000);
}catch(Exception e ){}
}
}
}
public static void start(){
thread.start();
}
public sattic void stop(){
thread.stop();
}
}
}
只是個(gè)框架,具體代碼自己完成吧,可以查詢相關(guān)的API。
首先建立一個(gè)備忘類
class Memo{
String content;
Date date;//或者使用Calendar類型
}
1. 點(diǎn)“寫(xiě)新備忘”怎樣進(jìn)入 另一個(gè)界面?怎樣來(lái)保存更新的備忘?
在程序內(nèi)部維護(hù)一個(gè)ArrayListDate,用來(lái)存放所有的備忘。用另一個(gè)Frame作為寫(xiě)新備忘的界面,比如frame2,點(diǎn)擊“寫(xiě)新備忘”的時(shí)候令frame2.setVisable(true)即可。寫(xiě)完之后將該備忘加入到ArrayList即可
2. 主界面中怎樣顯示最近的備忘,且顯示的是將來(lái)的時(shí)間的備忘?
最近的備忘應(yīng)該是指即將發(fā)生的那個(gè)備忘吧。遍歷ArrayList,找到將來(lái)最先發(fā)生的備忘,在文本框里將其顯示出來(lái)即可,當(dāng)然這件事情應(yīng)該自動(dòng)完成,這就需要一個(gè)線程不停地掃描ArrayList,并進(jìn)行更新。一個(gè)簡(jiǎn)單的做法是添加一個(gè)“刷新”按鈕,每次點(diǎn)擊“刷新”的時(shí)候,才去檢查ArrayList
3. 點(diǎn)查看備忘 怎樣進(jìn)入查看界面?
彈出另一個(gè)窗口,顯示ArrayList里的所有內(nèi)容
4. 能不能使備忘錄自己提醒呢?怎么提醒呢?
發(fā)出一聲“嘟嘟”聲來(lái)提醒,java.awt.Toolkit.getDefaultToolkit().beep()。
看來(lái)還是需要一個(gè)自動(dòng)刷新功能,就如同上面所說(shuō)的,在一個(gè)單獨(dú)的線程里不停地檢查有哪些事情要發(fā)生,并顯示到主界面。