新聞中心
【java圖形界面程序】 備忘錄
首先建立一個備忘類
成都創(chuàng)新互聯(lián)“設(shè)計定江山,服務(wù)贏天下“的思想,用細節(jié)和態(tài)度獲得客戶的認可與同行的尊重,服務(wù)是成都創(chuàng)新互聯(lián)企業(yè)文化中重要的核心思想,每一位員工要致力成為客戶心中堅實的服務(wù)后盾。
class Memo{
String content;
Date date;//或者使用Calendar類型
}
1. 點“寫新備忘”怎樣進入 另一個界面?怎樣來保存更新的備忘?
在程序內(nèi)部維護一個ArrayListDate,用來存放所有的備忘。用另一個Frame作為寫新備忘的界面,比如frame2,點擊“寫新備忘”的時候令frame2.setVisable(true)即可。寫完之后將該備忘加入到ArrayList即可
2. 主界面中怎樣顯示最近的備忘,且顯示的是將來的時間的備忘?
最近的備忘應(yīng)該是指即將發(fā)生的那個備忘吧。遍歷ArrayList,找到將來最先發(fā)生的備忘,在文本框里將其顯示出來即可,當然這件事情應(yīng)該自動完成,這就需要一個線程不停地掃描ArrayList,并進行更新。一個簡單的做法是添加一個“刷新”按鈕,每次點擊“刷新”的時候,才去檢查ArrayList
3. 點查看備忘 怎樣進入查看界面?
彈出另一個窗口,顯示ArrayList里的所有內(nèi)容
4. 能不能使備忘錄自己提醒呢?怎么提醒呢?
發(fā)出一聲“嘟嘟”聲來提醒,java.awt.Toolkit.getDefaultToolkit().beep()。
看來還是需要一個自動刷新功能,就如同上面所說的,在一個單獨的線程里不停地檢查有哪些事情要發(fā)生,并顯示到主界面。
java observer模式 怎么設(shè)計
在JDK(Java Development Kit)類庫中,開發(fā)人員使用了大量設(shè)計模式,正因為如此,我們可以在不修改JDK源碼的前提下開發(fā)出自己的應(yīng)用軟件,研究JDK類庫中的模式實例也不失為學(xué)習(xí)如何使用設(shè)計模式的一個好方式。
創(chuàng)建型模式:
(1) 抽象工廠模式(Abstract Factory)
? Java.util.Calendar#getInstance()
? java.util.Arrays#asList()
? java.util.ResourceBundle#getBundle()
? java.NET.URL#openConnection()
? java.sql.DriverManager#getConnection()
? java.sql.Connection#createStatement()
? java.sql.Statement#executeQuery()
? java.text.NumberFormat#getInstance()
? java.lang.management.ManagementFactory (所有g(shù)etXXX()方法)
? java.nio.charset.Charset#forName()
? javax.xml.parsers.DocumentBuilderFactory#newInstance()
? javax.xml.transform.TransformerFactory#newInstance()
? javax.xml.xpath.XPathFactory#newInstance()
(2) 建造者模式(Builder)
? java.lang.StringBuilder#append()
? java.lang.StringBuffer#append()
? java.nio.ByteBuffer#put() (CharBuffer, ShortBuffer, IntBuffer,LongBuffer, FloatBuffer 和DoubleBuffer與之類似)
? javax.swing.GroupLayout.Group#addComponent()
? java.sql.PreparedStatement
? java.lang.Appendable的所有實現(xiàn)類
(3) 工廠方法模式(Factory Method)
? java.lang.Object#toString() (在其子類中可以覆蓋該方法)
? java.lang.Class#newInstance()
? java.lang.Integer#valueOf(String) (Boolean, Byte, Character,Short, Long, Float 和 Double與之類似)
? java.lang.Class#forName()
? java.lang.reflect.Array#newInstance()
? java.lang.reflect.Constructor#newInstance()
(4) 原型模式(Prototype)
? java.lang.Object#clone() (支持淺克隆的類必須實現(xiàn)java.lang.Cloneable接口)
(5) 單例模式 (Singleton)
? java.lang.Runtime#getRuntime()
? java.awt.Desktop#getDesktop()
結(jié)構(gòu)型模式:
(1) 適配器模式(Adapter)
?java.util.Arrays#asList()
?javax.swing.JTable(TableModel)
?java.io.InputStreamReader(InputStream)
?java.io.OutputStreamWriter(OutputStream)
?javax.xml.bind.annotation.adapters.XmlAdapter#marshal()
?javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal()
(2) 橋接模式(Bridge)
? AWT (提供了抽象層映射于實際的操作系統(tǒng))
?JDBC
(3) 組合模式(Composite)
?javax.swing.JComponent#add(Component)
?java.awt.Container#add(Component)
?java.util.Map#putAll(Map)
?java.util.List#addAll(Collection)
?java.util.Set#addAll(Collection)
(4) 裝飾模式(Decorator)
?java.io.BufferedInputStream(InputStream)
?java.io.DataInputStream(InputStream)
?java.io.BufferedOutputStream(OutputStream)
?java.util.zip.ZipOutputStream(OutputStream)
?java.util.Collections#checked[List|Map|Set|SortedSet|SortedMap]()
(5) 外觀模式(Facade)
?java.lang.Class
?javax.faces.webapp.FacesServlet
(6) 享元模式(Flyweight)
?java.lang.Integer#valueOf(int)
?java.lang.Boolean#valueOf(boolean)
? java.lang.Byte#valueOf(byte)
?java.lang.Character#valueOf(char)
(7) 代理模式(Proxy)
? java.lang.reflect.Proxy
?java.rmi.*
行為型模式:
(1) 職責(zé)鏈模式(Chain of Responsibility)
?java.util.logging.Logger#log()
?javax.servlet.Filter#doFilter()
(2) 命令模式(Command)
? java.lang.Runnable
? javax.swing.Action
(3) 解釋器模式(Interpreter)
? java.util.Pattern
? java.text.Normalizer
? java.text.Format
? javax.el.ELResolver
(4) 迭代器模式(Iterator)
? java.util.Iterator
? java.util.Enumeration
(5) 中介者模式(Mediator)
? java.util.Timer (所有scheduleXXX()方法)
? java.util.concurrent.Executor#execute()
? java.util.concurrent.ExecutorService (invokeXXX()和submit()方法)
? java.util.concurrent.ScheduledExecutorService (所有scheduleXXX()方法)
?java.lang.reflect.Method#invoke()
(6) 備忘錄模式(Memento)
?java.util.Date
?java.io.Serializable
?javax.faces.component.StateHolder
(7) 觀察者模式(Observer)
?java.util.Observer/java.util.Observable
?java.util.EventListener (所有子類)
?javax.servlet.http.HttpSessionBindingListener
?javax.servlet.http.HttpSessionAttributeListener
?javax.faces.event.PhaseListener
(8) 狀態(tài)模式(State)
?java.util.Iterator
?javax.faces.lifecycle.LifeCycle#execute()
(9) 策略模式(Strategy)
? java.util.Comparator#compare()
? javax.servlet.http.HttpServlet
? javax.servlet.Filter#doFilter()
(10) 模板方法模式(Template Method)
?java.io.InputStream, java.io.OutputStream, java.io.Reader和java.io.Writer的所有非抽象方法
?java.util.AbstractList, java.util.AbstractSet和java.util.AbstractMap的所有非抽象方法
?javax.servlet.http.HttpServlet#doXXX()
(11) 訪問者模式(Visitor)
?javax.lang.model.element.AnnotationValue和AnnotationValueVisitor
?javax.lang.model.element.Element和ElementVisitor
?javax.lang.model.type.TypeMirror和TypeVisitor
求android手機考試倒計時源代碼?。∠駛渫浶问降?,弄個listview列表;有添加,刪除,鬧鐘提醒。
額額 你們這是交作業(yè) 還是你自己做著玩???
我可以幫你弄哈
只不過
你懂得
收費哦
java編譯的簡易備忘錄.
1.確定數(shù)格式,編寫記錄類
Record{
//記錄編號
private int id;
//提醒時間
private Time t;
//提醒信息
private String info;
}
2.確定數(shù)據(jù)訪問方式,可以通過文件也可以通過數(shù)據(jù)庫。
寫一個數(shù)據(jù)訪問類,例如用文件的形式
DataAccesser{
private static syncronized File file;
//構(gòu)造函數(shù),進行file初始化
public static DataAccesser(){
}
//寫入記錄
public static void write(Record){
}
//根據(jù)時間讀取記錄
public static Record read(int id){
}
//根據(jù)時間讀取記錄集
public static ListRecord readSet(Time t){
}
}
3.定義存取信息隊列的類
class MessageQueue{
//保存當前時刻以后的所有信息的時間隊列,安順序
private syncronized static ListTime;
//插入隊列
public static void put(){
//需要按時間順序插入
}
//獲得當前時間前的時間集
public static ListTime get(){
//獲得后需要將得到的時間從列表中刪除
}
}
4.編寫提醒類,用于提醒
class Reminder{
public void run(){
ListTime tl=getCurrentTime();
//查詢出所有
需要提醒的記錄調(diào)用remind()方法進行提醒
}
//提醒
protected void remind(Record r){
//這里寫如何提醒
}
//獲得當前時間
protected Time getCurrentTime(){
}
}
5.定時器類,
//提醒的主運行類
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();
}
}
}
只是個框架,具體代碼自己完成吧,可以查詢相關(guān)的API。
Java日歷查詢程序(萬年歷)
花了半個小時寫了一個望采納給好評。
import java.util.Scanner;
public class PrintCalendar {
/** Main method */
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// Prompt the user to enter year
System.out.print("Enter full year (e.g., 2001): ");
int year = input.nextInt();
// Prompt the user to enter month
System.out.print("Enter month in number between 1 and 12: ");
int month = input.nextInt();
// Print calendar for the month of the year
printMonth(year, month);
}
/** Print the calendar for a month in a year */
public static void printMonth(int year, int month) {
// Print the headings of the calendar
printMonthTitle(year, month);
// Print the body of the calendar
printMonthBody(year, month);
}
/** Print the month title, e.g., May, 1999 */
public static void printMonthTitle(int year, int month) {
System.out.println(" " + getMonthName(month)
+ " " + year);
System.out.println("-----------------------------");
System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
}
/** Get the English name for the month */
public static String getMonthName(int month) {
String monthName = "";
switch (month) {
case 1: monthName = "January"; break;
case 2: monthName = "February"; break;
case 3: monthName = "March"; break;
case 4: monthName = "April"; break;
case 5: monthName = "May"; break;
case 6: monthName = "June"; break;
case 7: monthName = "July"; break;
case 8: monthName = "August"; break;
case 9: monthName = "September"; break;
case 10: monthName = "October"; break;
case 11: monthName = "November"; break;
case 12: monthName = "December";
}
return monthName;
}
/** Print month body */
public static void printMonthBody(int year, int month) {
// Get start day of the week for the first date in the month
int startDay = getStartDay(year, month);
// Get number of days in the month
int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month);
// Pad space before the first day of the month
int i = 0;
for (i = 0; i startDay; i++)
System.out.print(" ");
for (i = 1; i = numberOfDaysInMonth; i++) {
System.out.printf("%4d", i);
if ((i + startDay) % 7 == 0)
System.out.println();
}
System.out.println();
}
/** Get the start day of month/1/year */
public static int getStartDay(int year, int month) {
final int START_DAY_FOR_JAN_1_1800 = 3;
// Get total number of days from 1/1/1800 to month/1/year
int totalNumberOfDays = getTotalNumberOfDays(year, month);
// Return the start day for month/1/year
return (totalNumberOfDays + START_DAY_FOR_JAN_1_1800) % 7;
}
/** Get the total number of days since January 1, 1800 */
public static int getTotalNumberOfDays(int year, int month) {
int total = 0;
// Get the total days from 1800 to 1/1/year
for (int i = 1800; i year; i++)
if (isLeapYear(i))
total = total + 366;
else
total = total + 365;
// Add days from Jan to the month prior to the calendar month
for (int i = 1; i month; i++)
total = total + getNumberOfDaysInMonth(year, i);
return total;
}
/** Get the number of days in a month */
public static int getNumberOfDaysInMonth(int year, int month) {
if (month == 1 || month == 3 || month == 5 || month == 7 ||
month == 8 || month == 10 || month == 12)
return 31;
if (month == 4 || month == 6 || month == 9 || month == 11)
return 30;
if (month == 2) return isLeapYear(year) ? 29 : 28;
return 0; // If month is incorrect
}
/** Determine if it is a leap year */
public static boolean isLeapYear(int year) {
return year % 400 == 0 || (year % 4 == 0 year % 100 != 0);
}
}
安卓手機備忘錄在哪里打開
有些人喜歡用手機的備忘錄來記錄一些重要的事情,但有些朋友在手機找不到備忘錄,那安卓手機備忘錄在哪里打開?
1、 先打開手機所帶的系統(tǒng)軟件。
2、 向左滑動,看系統(tǒng)軟件有哪些。
3、 找到備忘錄點擊即可打開使用備忘錄。
以上是關(guān)于安卓手機備忘錄在哪里打開的方法,如果你不知道在哪里找的話,可以參考上面的方法,希望對你有用吧!
分享標題:java安卓備忘錄源代碼,安卓開發(fā)備忘錄
網(wǎng)站URL:http://fisionsoft.com.cn/article/heepcp.html