Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 编写测验程序时,我是否可以在单独的项目中对每个测验进行编码,并在最后添加它们?或者我必须从一开始就在一个项目中创建它们?_Java_Eclipse - Fatal编程技术网

Java 编写测验程序时,我是否可以在单独的项目中对每个测验进行编码,并在最后添加它们?或者我必须从一开始就在一个项目中创建它们?

Java 编写测验程序时,我是否可以在单独的项目中对每个测验进行编码,并在最后添加它们?或者我必须从一开始就在一个项目中创建它们?,java,eclipse,Java,Eclipse,我正在用Java创建一个简单的GUI测试程序。(我正在使用Eclipse用Java Swing编写代码。)我脑子里有10种测验——填空、多项选择题等。本能地,我觉得从一开始就把整个程序作为一个项目来编写可能不是一个好主意 所以在对登录页面、测验列表等进行编码之后,我在项目中只创建了一种测验。因此,当我运行程序并单击测验列表中的第一项时,测验开始了 然后我复制并粘贴了整个项目,并给它起了另一个名字。然后删除了测验,并在那里编写了另一种测验 让程序保持这样的小规模感觉很舒服。想法是在一切准备就绪后将

我正在用Java创建一个简单的GUI测试程序。(我正在使用Eclipse用Java Swing编写代码。)我脑子里有10种测验——填空、多项选择题等。本能地,我觉得从一开始就把整个程序作为一个项目来编写可能不是一个好主意

所以在对登录页面、测验列表等进行编码之后,我在项目中只创建了一种测验。因此,当我运行程序并单击测验列表中的第一项时,测验开始了

然后我复制并粘贴了整个项目,并给它起了另一个名字。然后删除了测验,并在那里编写了另一种测验

让程序保持这样的小规模感觉很舒服。想法是在一切准备就绪后将所有测验类复制粘贴到一个项目中。我那样做的时候效果很好

我遇到了一个问题,当时我不得不在测验列表课上对代码做一些修改。我必须在所有项目中打开测验列表课程,并对其进行更改。这很乏味。我意识到我不知道创建一个像测验这样的程序的正确方法

有谁能告诉我,如果一个人在做一个类似测验的节目,最好的方法是什么?我应该从一开始就在一个项目中创建所有测验吗?或者我应该一个接一个地开发它们,并在最后将它们添加到一起?如果两者都可以,那么利与弊是什么?谢谢大家!

PS

另外,我现在正在读模块化编程。我将中断程序的某些部分,比如我的自定义音频播放器类,并将其添加到所有项目的构建路径中。但是我看不出我怎么能中断像“测验列表”这样的课程。当然,我可以将它放在一个项目中,并将所有其他项目与测验联系起来。但这与从一开始就在单个项目中创建程序是一样的。我无法单独运行每个测验进行测试


我明白这一定是一个基本问题,但我只是一直无法在网上找到答案。我甚至不知道该找什么。非常感谢你的帮助。:)

不要为每个测验创建新项目将代码分成多个程序是一种结构化编程

在OOP中,与Java一样,我们使用
class
es和
interface
s来组织代码部分。 您可以有一个
界面
测验和多个(可能是
抽象
)类。以下代码只是一个粗略的概念:

public interface Quiz
{
    JPanel getContent();
}


因此,现在您可以在控制器中拥有一个方法,每当用户想要提交他们的测验输入时,该方法都会被调用

public void submit()
{
    if (validateInputs())
    {
        //Correct.
        nextQuiz();
    }
    else
    {
        //WRONG!
    }
}
其中
nextQuiz()
将测验提前一步。例如:

private void nextQuiz()
{
    setQuiz(currentQuizIndex + 1);
}

private setQuiz(int quizIndex)
{
    List<Quiz> quizList = //a list initialized containing all quizzes;
    mainPanel.setContent(quizList.get(quizIndex).getContent());
    currentQuizIndex = quizIndex;
}
private void nextQuiz()
{
setquick(currentQuizIndex+1);
}
私人设置测验(int quizIndex)
{
List quizList=//初始化后包含所有测验的列表;
setContent(quizList.get(quizIndex.getContent());
currentQuizIndex=quizIndex;
}

我可以继续讲下去。

针对某一类测验的课程是否充分?它们是否以不同的方式与主要/公共部件交换?如果只有少数几个类具有基本的主体交换,那么一个包含多个包的项目就不够了。每个测验基本上有三节课。一个类用于GUI和组件的功能。另一个从数据库获取数据,并在GUI上进行设置。第三类检查答案。它们都以相同的方式与公共部分进行交互。所以,如果我理解正确,我应该把它们都放在一个项目中。非常感谢:)非常感谢您键入详细的答复。:)所以你建议我只在一个项目中完成。我会的。我想我理解你说的话。我对Java还是个新手。还不知道足够的基础知识。我的课程结构是这样的:每个测验有三节课。第一个类用于GUI和组件的功能。第二个从数据库获取数据,并在GUI上进行设置。第三个类检查答案并根据答案做一些事情。所有测验GUI类都在一个包中。我对其他两类课程也做了同样的练习。@Dan,没关系。我只是想把这些课程紧密地结合在一起。那就好了?谢谢。我只是在Java中找到我的方法。得到那些了解更多的人的意见是很好的。
public void submit()
{
    if (validateInputs())
    {
        //Correct.
        nextQuiz();
    }
    else
    {
        //WRONG!
    }
}
private void nextQuiz()
{
    setQuiz(currentQuizIndex + 1);
}

private setQuiz(int quizIndex)
{
    List<Quiz> quizList = //a list initialized containing all quizzes;
    mainPanel.setContent(quizList.get(quizIndex).getContent());
    currentQuizIndex = quizIndex;
}