【发布时间】:2016-04-21 06:38:36
【问题描述】:
我正在尝试运行一个程序(顺便说一句,这不是我的,我试图将其理解为作为初学者学习基本 Java 的一种方式),但我从 Eclipse 中得到一个错误说明:
错误:在类 Door 中找不到主方法,请将主方法定义为: 公共静态无效主要(字符串 [] 参数) 或者 JavaFX 应用程序类必须扩展 javafx.application.Application
但是,我在那里看到public static void main(String[] args)?
我首先创建了一个项目名称为“Door”的 Java 项目,选择了“使用执行环境 JRE:JavaSE-1.8”,并选择了“使用项目文件夹作为源代码和类文件的根目录”。然后,我创建了一个 Java 类,其中 Source 文件夹和名称为“Door”,我选择 public 作为修饰符,并且没有选择方法螺柱。我是否选择了错误的选项?
代码:
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
import java.awt.event.*;
import java.util.Scanner;
public class TestDoor
{
static Door Door1;
static Door Door2;
static Door Door3;
static Scanner input=new Scanner(System.in);
public static void main(String[] args)
{
Door1=new Door("Enter");
Door2=new Door("Exit");
Door3=new Door("Treasure");
Door1.setOpen();
Door1.setUnlocked();
Door3.setOpen();
boolean done = false;
int choice;
do
{
chooseDoor();
choice = input.nextInt();
switch(choice)
{
case 1:
DOOR1();
break;
case 2:
DOOR2();
break;
case 3:
DOOR3();
break;
case 4:
System.out.println("\n\n---------- Door Status ----------\n");
if(Door1.isLocked()==true)
{
System.out.print("ENTER door is LOCKED and ");
}
else
{
System.out.print("ENTER door is UNLOCKED and ");
}
if(Door1.isClosed()==true)
{
System.out.print("CLOSED\n\n");
}
else
{
System.out.print("OPEN\n\n");
}
if(Door2.isLocked()==true)
{
System.out.print("EXIT door is LOCKED and ");
}
else
{
System.out.print("EXIT door is UNLOCKED and ");
}
if(Door2.isClosed()==true)
{
System.out.print("CLOSED\n\n");
}
else
{
System.out.print("OPEN\n\n");
}
if(Door3.isLocked()==true)
{
System.out.print("TREASURE door is LOCKED and ");
}
else
{
System.out.print("TREASURE door is UNLOCKED and ");
}
if(Door3.isClosed()==true)
{
System.out.print("CLOSED\n\n");
}
else
{
System.out.printf("OPEN\n\n");
}
System.out.println("---------- Door Status ----------\n");
break;
default:
System.out.println("<<<< Out of choice range select again >>>>\n");
}
}while(!done);
}
public static void Choices()
{
System.out.println("\n--------- choices ---------\n\n");
System.out.println("1. OPEN door");
System.out.println("2. CLOSE door");
System.out.println("3. LOCK door");
System.out.println("4. UNLOCK door");
System.out.println("5. Check current door status");
System.out.println("6. Go Back to choose another door");
System.out.print("\n\nEnter Choice: ");
}
public static void chooseDoor()
{
System.out.println("\n\n--------- Choose Your Door --------\n\n");
System.out.println("1. Enter door");
System.out.println("2. Exit door");
System.out.println("3. Treasure door");
System.out.println("4. All Door Statuses");
System.out.print("\n\nEnter Choice: ");
}
public static void DOOR1()
{
int choice;
boolean done = false;
do
{
Choices();
choice=input.nextInt();
/*for(int i=0;i<6;i++)
{
System.out.println();
}*/
switch(choice)
{
case 1:
Door1.open();
break;
case 2:
Door1.close();
break;
case 3:
Door1.lock();
break;
case 4:
Door1.unlock();
break;
case 5:
if(Door1.isLocked()==true)
{
System.out.println("---------- The ENTER Door Status ----------\n");
System.out.print("Door is LOCKED and ");
}
else
{
System.out.println("---------- The ENTER Door Status ----------\n");
System.out.print("Door is UNLOCKED and ");
}
if(Door1.isClosed()==true)
{
System.out.print("CLOSED\n\n");
System.out.println("---------- The ENTER Door Status ----------\n");
}
else
{
System.out.printf("OPEN\n\n");
System.out.println("---------- The ENTER Door Status ----------\n");
}
break;
case 6:
done = true;
break;
default:
System.out.print("<<<< Out of choice range select again >>>>\n");
}
}while(!done);
}
public static void DOOR2()
{
int choice;
boolean done = false;
do
{
Choices();
choice=input.nextInt();
/*for(int i=0;i<6;i++)
{
System.out.println();
}*/
switch(choice)
{
case 1:
Door2.open();
break;
case 2:
Door2.close();
break;
case 3:
Door2.lock();
break;
case 4:
Door2.unlock();
break;
case 5:
if(Door2.isLocked()==true)
{
System.out.println("---------- The EXIT Door Status ----------\n");
System.out.print("Door is LOCKED and ");
}
else
{
System.out.println("---------- The EXIT Door Status ----------\n");
System.out.print("Door is UNLOCKED and ");
}
if(Door2.isClosed()==true)
{
System.out.print("CLOSED\n\n");
System.out.println("---------- The EXIT Door Status ----------\n");
}
else
{
System.out.printf("OPEN\n\n");
System.out.println("---------- The EXIT Door Status ----------\n");
}
break;
case 6:
done = true;
break;
default:
System.out.print("<<<< Out of choice range select again >>>>\n");
}
}while(!done);
}
public static void DOOR3()
{
int choice;
boolean done = false;
do
{
Choices();
choice=input.nextInt();
/*for(int i=0;i<6;i++)
{
System.out.println();
}*/
switch(choice)
{
case 1:
Door3.open();
break;
case 2:
Door3.close();
break;
case 3:
Door3.lock();
break;
case 4:
Door3.unlock();
break;
case 5:
if(Door3.isLocked()==true)
{
System.out.println("---------- The TREASURE Door Status ----------\n");
System.out.print("Door is LOCKED and ");
}
else
{
System.out.println("---------- The TREASURE Door Status ----------\n");
System.out.print("Door is UNLOCKED and ");
}
if(Door3.isClosed()==true)
{
System.out.print("CLOSED\n\n");
System.out.println("---------- The TREASURE Door Status ----------\n");
}
else
{
System.out.printf("OPEN\n\n");
System.out.println("---------- The TREASURE Door Status ----------\n");
}
break;
case 6:
done = true;
break;
default:
System.out.print("<<<< Out of choice range select again >>>>\n");
}
}while(!done);
}
}
【问题讨论】:
-
您发布的代码适用于
TestDoor类,而不是Door。 -
对不起,我的意思是 TestDoor 用于项目/文件命名。
-
你的java文件名是什么?
-
“门”在哪里?