2013-05-05 84 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);