2013-05-05 105 views
-4

這是我的代碼,任何人都可以幫我解決我做錯了什麼?當我嘗試編譯時,它不斷給我三個錯誤。當我刪除DateFormat.getDateTimeInstance()Calendar.format(short);它編譯,但沒有得到錯誤public static void main(String[] args)我很困惑。代碼不會編譯?

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.text.*; 
import java.util.*; 

public class JDateTime extends JApplet implements ActionListener 
{ 
    JTextField DT = new JTextField (45); 
    JButton button = new JButton ("For Date and Time"); 
    FlowLayout flow = new FlowLayout(); 

    Calendar now = Calendar.getInstance(); 
    DateFormat.getDateTimeInstance()Calendar.format(short); 
    int hour = now.get(Calendar.HOUR_OF_DAY); 
    int minute = now.get(Calendar.MINUTE); 
    int month = now.get(Calendar.MONTH)+ 1; 
    int day = now.get(Calendar.DAY_OF_MONTH); 
    int year = now.get(Calendar.YEAR); 

    public void init() 
    { 
     Container con = getContentPane(); 
     con.add(now); 
     con.setLayout(flow); 
     con.add(DT); 
     con.add(button); 
     button.addActionListener(this); 
     DT.addActionListener(this); 
     DT.requestFocus(); 
     } 

    public void actionPerformed(ActionEvent thisEvent) 
    { 
     DT.setText("Today is " + now); 
    } 

} 

謝謝。

+0

如果你不想這個問題關閉,引用你得到的「三個錯誤」,使用複製/粘貼,以確保你得到他們的確切。並確定列表中與行號對應的行。 (否則,你只是在刺激人。) – 2013-05-05 02:33:05

+2

首先:什麼是確切的編譯錯誤?第二個「當我刪除'DateFormat.getDateTimeInstance()Calendar.format(short);'它編譯」 - 告訴你這是錯誤的路線。如果仔細觀察,你在'getDateTimeInstance()'和'Calendar'之間缺少'.' - 這是一個編譯錯誤。 – 2013-05-05 02:33:30

+0

至於缺少的Main,您需要在appletviewer中運行此操作,而不是從命令行運行,因爲您已經定義了一個applet,而不是獨立的程序。 – Doon 2013-05-05 02:37:13

回答

1

你缺少一個點(。)

DateFormat.getDateTimeInstance()Calendar.format(short); DateFormat.getDateTimeInstance().calendar.format(short);

和指出,從日曆的C,必須降低套管。雖然沒有嘗試過!

+0

+1的大眼睛.... – Bill 2013-05-05 02:35:54

+0

我不認爲這將彙編要麼因爲沒有'DateFormat.Calendar' - 的'C'必須是小寫:http://docs.oracle.com/javase /1.4.2/docs/api/java/text/DateFormat.html#calendar – 2013-05-05 02:36:17

+1

@RichardJPLeGuen他是第一個發現它....'C'或'C'是一個簡單的辦法看文檔... 。我認爲對他的回答進行投票是不公平的。 – Bill 2013-05-05 02:38:50

1

你的第一個錯誤在你

DateFormat.getDateTimeInstance()Calendar.format(short); 

聲明來自一個缺少.。與

DateFormat.getDateTimeInstance().calendar.format(short); 
// Lower case 'c' as someone pointed out in comments 

至於缺的main()取代它時,你編譯並運行特定的Java文件時,JVM將尋找一個Public static void main(String[] args)功能爲「進入」點到代碼中使用。沒有人JVM不知道從哪裏開始代碼。

編輯:正如您指出的那樣,您的代碼是JApplet,因此您需要使用applet查看器運行它。這樣做將使用init()方法爲切入點,而不是在main()(這樣你就不會遇到麻煩失蹤main()

+0

你有沒有注意到他的類擴展了'JApplet'? – 2013-05-05 02:38:00

+0

我不斷收到和錯誤說(標識符預期),也';'預期? – 2013-05-05 02:38:57

+0

在哪一行?在問題中發佈錯誤,它會幫助人們瞭解發生了什麼問題。 – TheMerovingian 2013-05-05 02:44:11

1

刪除此行:

con.add(now); 

java.util.Calendar不能被添加到一個容器

另外,代替

DateFormat.getDateTimeInstance().Calendar.format(short); 

使用

String dateString = DateFormat.getDateTimeInstance().format(now.getTime()); 
// do something with dateString 

和在一個方法,而不是在類塊。

0

你做一個小程序。但看起來像你運行它像一個獨立的應用程序(因此主要錯誤)。

看看如何運行一個applet(需要一個簡單的html文件和標籤),然後使用appletviewer。

很容易1周的java文件的方式:

http://www.devx.com/tips/Tip/13531

更好的辦法:http://www.roseindia.net/java/java-introduction/javatools/java_applet_viewer.shtml

或者將其轉換爲一個GUI使用主,在那裏你可以調用一個方法來添加一個JFrame獨立的應用程序並添加該小程序Java applet as stand-alone Windows application?

日期部分讓我們看看。

0

你確定你的代碼編譯?有些部分看起來應該是一種方法,但不是!

FlowLayout flow = new FlowLayout();//okay 

    // following should be in a method? or you want them all as instance vars? why? 
    Calendar now = Calendar.getInstance(); 
    //no point formatting if your not using it. and what is short? 
     DateFormat.getDateTimeInstance()Calendar.format(short); 
    int hour = now.get(Calendar.HOUR_OF_DAY); 
    int minute = now.get(Calendar.MINUTE); 
    int month = now.get(Calendar.MONTH)+ 1; 
    int day = now.get(Calendar.DAY_OF_MONTH); 
    int year = now.get(Calendar.YEAR);