2010-11-04 46 views
0

我是初学者,但我一直在处理这个未知问题。请查看我已编码的这个简单程序,并解释它为什么不能编译我。问题是我已经从老师那里复制了这段代码,并且在他的机器上工作正常。然后,当我试图在我的机器上运行这个例子时,我得到了13个错误!简单程序停止编译过程中的Java错误,请帮忙

这是第一类:

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

class radio extends JFrame{ 

private JTextField tf; 
private Font pf; 
private Font bf; 
private Font itf; 
private Font bif; 
private JRadioButton pb; 
private JRadioButton bb; 
private JRadioButton ib; 
private JRadioButton bib; 
private ButtonGroup group; 

public radio(){ 
    super("raido buttonseses"); 
    setLayout(new FlowLayout()); 

    tf = new JTextField("buggedy buggedy boo", 25); 
    add(tf); 

    pb = new JRadioButton("plain", true); 
    bb = new JRadioButton("bold", false); 
    ib = new JRadioButton("italic", false); 
    bib = new JRadioButton("bold and italic", false); 

    add(pb); 
    add(bb); 
    add(ib); 
    add(bib); 

    group = new ButtonGroup(); 
    group.add(pb); 
    group.add(bb); 
    group.add(ib); 
    group.add(bib); 


    pf = new Font("Serif", Font.PLAIN, 14); 
    bf = new Font("Serif", Font.BOLD, 14); 
    itf = new Font("Serif", Font.ITALIC, 14); 
    bif = new Font("Serif", Font.BOLD + Font.ITALIC, 14); 
    tf.setFont(pf); 

    //wait for event to happen pass in font obj to constructor 
    pb.addItemListener(new HandlerClass(pf)); 
    bb.addItemListener(new HandlerClass(bf)); 
    ib.addItemListener(new HandlerClass(itf)); 
    bib.addItemListener(new HandlerClass(bif)); 





} 


    private class HandlerClass implements ItemListener{ 

    private Font font; 
    // font obj gets variable font 
    public HandlerClass(Font f){ 
    font = f; 


    } 

    //sets font to font obj that was passed in 
    public void itemStateChanged(ItemEvent event){ 
    tf.setFont(font); 


} 


} 

    } 

当年这里是我一直在试图运行第二个主类:

import javax.swing.JFrame; 

public class radiobutton{ 
public static void main(String[] args) { 

    radio go = new radio(); 
    go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    go.setSize(300,200); 
    go.setVisible(true); 

} 


} 

我知道有人在看着这个和思考的答案是如此明显,但对于像我这样的初学者来说,这不是很清楚。下面是当我尝试编译,我又回到了我的错误:

javac radiobutton.java 
./JFrame.java:1: JFrame is already defined in this compilation unit 
import javax.swing.JFrame; 
^ 
radiobutton.java:7: cannot find symbol 
symbol : method setDefaultCloseOperation(int) 
location: class radio 
      go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      ^
radiobutton.java:8: cannot find symbol 
symbol : method setSize(int,int) 
location: class radio 
      go.setSize(300,200); 
      ^
radiobutton.java:9: cannot find symbol 
symbol : method setVisible(boolean) 
location: class radio 
      go.setVisible(true); 
      ^
./JFrame.java:8: cannot find symbol 
symbol : variable EXIT_ON_CLOSE 
location: class JFrame 
      go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
              ^
./radio.java:19: cannot find symbol 
symbol : constructor JFrame(java.lang.String) 
location: class JFrame 
      super("raido buttonseses"); 
      ^
./radio.java:20: cannot find symbol 
symbol : method setLayout(java.awt.FlowLayout) 
location: class radio 
      setLayout(new FlowLayout()); 
      ^
./radio.java:22: cannot find symbol 
symbol : class JTExtField 
location: class radio 
      tf = new JTExtField("buggedy buggedy boo", 25); 
        ^
./radio.java:23: cannot find symbol 
symbol : method add(javax.swing.JTextField) 
location: class radio 
      add(tf); 
      ^
./radio.java:30: cannot find symbol 
symbol : method add(javax.swing.JRadioButton) 
location: class radio 
      add(pb); 
      ^
./radio.java:31: cannot find symbol 
symbol : method add(javax.swing.JRadioButton) 
location: class radio 
      add(bb); 
      ^
./radio.java:32: cannot find symbol 
symbol : method add(javax.swing.JRadioButton) 
location: class radio 
      add(ib); 
      ^
./radio.java:33: cannot find symbol 
symbol : method add(javax.swing.JRadioButton) 
location: class radio 
      add(bib); 
      ^
13 errors 

我的猜测是,这事做在的Java函数进口的星号。我在正确的轨道上吗?感谢您看看这个愚蠢的问题,并非常感谢任何帮助。

+0

它完美地编译对我来说,尝试运行Java的版本,告诉我们输出 – 2010-11-04 07:06:38

回答

0

这是在黑暗中拍摄的,因为我还没有碰过Java一段时间,但是你在编译radio.java,然后编译radiobutton.java?

+0

你们都是太棒了!感谢所有的帮助。现在让我回到正轨。 :) – Presto 2010-11-22 22:03:05

1

它编译得很好。

错误可能是这样的:你的源代码目录中有另一个文件叫JFrame.java。删除此文件! JFrame已经在API中定义。

错误消息...

./JFrame.java:1: JFrame is already defined in this compilation unit 
import javax.swing.JFrame; 

...表明./JFrame.java存在于同一个包radiobutton

(作为一个方面说明我想提一提的是,根据Java编码惯例,你应该总是以大写字母开头的类名。)

+1

猜你是对的。看起来像在同一个包/目录中有一个自定义的'JFrame.java'。 – 2010-11-04 08:27:43

0
./JFrame.java:8: cannot find symbol 
symbol : variable EXIT_ON_CLOSE 
location: class JFrame 
      go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

此错误消息是指另一个源文件( JFrame.java)。和aioobe一样,我打赌你在同一个目录(包)中有一个名为JFrame.java的文件。

为了测试,试试这个代码:

// no import statement here! 

public class radiobutton{ 
    public static void main(String[] args) { 
     radio go = new radio(); 
     go.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); 
     //      ^changed^
     go.setSize(300,200); 
     go.setVisible(true);  
    } 
}