Ошибки Java для простой программы остановить процесс компиляции, пожалуйста, помогите - PullRequest
0 голосов
/ 04 ноября 2010

Я новичок здесь, но я уже некоторое время занимаюсь этой неизвестной проблемой. Пожалуйста, просмотрите эту простую программу, которую я написал, и объясните, почему она не будет компилироваться для меня. Дело в том, что я скопировал этот код у учителя, и он отлично работает на его компьютере. Затем, когда я попытался запустить пример на моей машине, я получил 13 ошибок!

Вот первый класс:

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-функций. Я на правильном пути здесь? Спасибо, что взглянули на эту глупую проблему, и любая помощь очень ценится.

Ответы [ 3 ]

1 голос
/ 04 ноября 2010

Он прекрасно компилируется для меня.

Ошибка, вероятно, следующая: В вашем исходном каталоге есть еще один файл с именем JFrame.java.Удалить этот файл!JFrame уже определен в API.

Сообщение об ошибке ...

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

... показывает, что ./JFrame.java существует в том же пакете, что и radiobutton.

(В качестве примечания хочу отметить, что в соответствии с соглашениями о кодировании Java вы всегда должны начинать имена классов с заглавной буквы.)

0 голосов
/ 04 ноября 2010
./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);    
   }
}
0 голосов
/ 04 ноября 2010

Это выстрел в темноте, так как я некоторое время не касался Java, но вы компилируете radio.java, а затем компилируете radiobutton.java?

...