简单程序停止编译过程的Java错误,请帮助 [英] Java Errors for simple program stop compiling process, please help

查看:22
本文介绍了简单程序停止编译过程的Java错误,请帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是这里的初学者,但我已经处理这个未知问题有一段时间了.请查看我编写的这个简单程序并解释为什么它不能为我编译.问题是我从一位老师那里复制了这段代码,并且在他的机器上运行良好.然后当我试图在我的机器上运行这个例子时,我得到了 13 个错误!

I am a beginner here, but I have been dealing with this unknown issue for a while now. Please view this simple program that I have coded and explain why it will not compile for me. The thing is that I have copied this code from a teacher and it works fine on his machine. Then when I tried to run the example on my machine I get 13 errors!

这是第一堂课:

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);


}


 }

    }

然后这是我一直在尝试运行的第二个主类:

Then here is the second main class that I have been trying to run:

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);

 }


}

我知道有人在看这个并认为答案是如此明显,但对于像我这样的初学者来说并不是很清楚.以下是我尝试编译时返回给我的错误:

I know someone is looking at this and thinking that the answer is so obvious, but to a beginner like me it is not very clear. Here are the errors that I have returned to me when I try to compile:

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函数导入中的星号有关.我在正确的轨道上吗?感谢您查看这个愚蠢的问题,非常感谢您的帮助.

My guess is that this has something to do with the asterisk in the import of the java functions. Am I on the right track here? Thank you for having a look at this silly problem and any help is much appreciated.

推荐答案

它对我来说编译得很好.

It compiles just fine for me.

错误可能是这样的:您的源目录中有另一个名为 JFrame.java 的文件.删除此文件!JFrame 已在 API 中定义.

The error is probably this: You have another file called JFrame.java in your source directory. Remove this file! JFrame is already defined in the API.

错误信息...

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

...表明 ./JFrame.javaradiobutton 存在于同一个包中.

...reveals that ./JFrame.java exists in the same package as radiobutton.

(作为旁注,我想提一下,根据 Java 编码约定,您应该始终以大写字母开头类名.)

(As a side note I want to mention that according to the Java coding conventions, you should always start your class names with a capital letter.)

这篇关于简单程序停止编译过程的Java错误,请帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆