2014-03-29 36 views
3

當我編譯java程序,我得到這個錯誤文件中聲明:類Appletprac是公共的,應在指定的文件中聲明Appletprac.javaJava的編譯錯誤:類Appletprac是公共的,應在名爲Appletprac.java

這裏是我的Java代碼:

import java.applet.*; 
import java.awt.*;  // Graphics Class 
import javax.swing.*; 
import java.awt.event.*; 
/*<applet code="Appletprac.class" width="500" height="500"> </applet>*/ 
public class Appletprac extends JApplet implements ActionListener 
{ 
JButton OK; 
JRadioButton Font_Style1,Font_Style2,Font_Style3; 
ButtonGroup bg; 
JCheckBox Font_Family_Name; 
JTextField jt; 
int i; 
     String s=""; 
public void init() 
{ 
    OK=new JButton("OK");  
    Font_Family_Name=new JCheckBox("Serif"); 
    Font_Style1=new JRadioButton("Plain"); 
    Font_Style2=new JRadioButton("Bold"); 
    Font_Style3=new JRadioButton("BoldItalic"); 
    bg=new ButtonGroup(); 
    jt=new JTextField(20); 
    this.setLayout(new FlowLayout()); 
    bg.add(Font_Style1); 
    bg.add(Font_Style2); 
    bg.add(Font_Style3);  
         this.add(jt); 
    this.add(OK); 
    this.add(Font_Family_Name); 
    this.add(Font_Style1); 
    this.add(Font_Style2); 
    this.add(Font_Style3); 
    OK.addActionListener(this); 
    Font_Style1.addActionListener(this);  
    Font_Style2.addActionListener(this); 
    Font_Style3.addActionListener(this); 
} 
public void start() 
{} 
public void stop() 
{} 
public void paint(Graphics g) 
{ 
    g.clearRect(50,50,500,300); 
    g.draw3DRect(50,50,500,300,false); 
    g.setFont(new Font(s,i,30)); 
    g.setColor(Color.BLUE); 
    g.drawString(jt.getText(),100,100); 

} 
public void actionPerformed(ActionEvent e) 
{ 
    if(e.getSource()==Font_Style1) 
     i=Font.PLAIN; 
    if(e.getSource()==Font_Style2) 
        i=Font.BOLD; 
    if(e.getSource()==Font_Style3) 
    { 
        i=Font.ITALIC; 
        int j=Font.BOLD; 
        i=i+j; 
    }  
    if(e.getSource()==Font_Family_Name || e.getSource()==OK) 
    { 
     if(Font_Family_Name.isSelected()) 
      s="Serif"; 
     else 
         s="Tall paul"; 
    }  
    repaint(); 
} 
} 
+2

錯誤對我來說很清楚。你的文件名是什麼? –

+0

我認爲錯誤信息已經包含解決方案:您是否將文件命名爲Appletprac.java? – donfuxx

+0

好吧,得到了我通過appletprac.java名稱保存文件的解決方案。我將它重命名爲Appletprac.java,現在編譯它。但是,當運行我得到另一個錯誤:主要方法類Appletprac沒有找到,請確定的主要方法爲:公共 靜態無效的主要(字串[] args) 或JavaFX應用程序類必須擴展javafx.aaplication.Application – Tanmay

回答

1

的Java允許每個文件包含一個公共類和公共類的名稱應與文件名相同。對你來說,你應該做的文件名Appletprac.java

你可以看到這個鏈接Why are filenames in Java the same as the class name?

寫HTML文件是這樣的:

的test.html

<html> 
<applet 
    code = Appletprac.class 
    width = 200 
    height = 100> 
</applet> 
</html> 

把編譯。 class文件放在同一個文件夾中,並在cmd中輸入appletviewer test.html

+0

好的我的計劃是現在編譯,但它運行後我收到此錯誤:類Appletprac沒有找到Main方法,請確定的主要方法爲: 公共靜態無效的主要(字串[] args) 或JavaFX應用程序類必須擴展的JavaFX .apaplication.Application – Tanmay

+0

您是否將它作爲Java應用程序運行?您應該將其作爲Java Applet運行 – locoyou

+0

如果您使用eclipse,則可以單擊以applet身份運行。否則,你可以寫一個簡單的html文件來運行它 – locoyou

0

如果您的外部類具有public修飾符,它應該位於具有相同類名和.java擴展名的文件中。這是一個簡單的java約定來構造文件系統中的類和包。