简单的java家庭作业帮助,需要gui帮助吗

简单的java家庭作业帮助,需要gui帮助吗,java,arrays,swing,arraylist,Java,Arrays,Swing,Arraylist,我必须创建一个名为testscores的类 编写一个名为TestScores的类。类构造函数应该接受测试分数数组作为它的参数。类应该有一个返回测试分数平均值的方法。如果数组中的任何测试分数为负值或大于100,则该类应抛出IllegalArgumentExecution。在程序中演示该课程 这是我的节目 .lang.IllegalArgumentException; /** * class TestScores * @author george beazer * */ public c

我必须创建一个名为testscores的类

编写一个名为TestScores的类。类构造函数应该接受测试分数数组作为它的参数。类应该有一个返回测试分数平均值的方法。如果数组中的任何测试分数为负值或大于100,则该类应抛出IllegalArgumentExecution。在程序中演示该课程

这是我的节目

.lang.IllegalArgumentException;

/**
 * class TestScores
 * @author george beazer
 * 
 */
public class TestScores {

    double[] scoresArray;
    double average;

    /**
     * Constructor
     * @param double[] scores
     */
    public TestScores(double[] scores) {

        this.scoresArray = new double[scores.length];

        try {
            for(int i = 0; i < scores.length ; i++) {
                this.scoresArray[i] = scores[i];
                if((this.scoresArray[i] < 0) || (this.scoresArray[i] > 100 )) 
                    throw new IllegalArgumentException(Double.toString(this.scoresArray[i]));
            }
            this.calcAverage();
        }
        catch(IllegalArgumentException e) {
            System.out.println("The Array contains Illegal values! " +
                    e.getMessage() + " is Less than 0 or Greater than 100.");           
        }
    }

    /**
     * private method to calculate the average of the array
     */
    void calcAverage() {
        int count = 0;
        double sum = 0;

        for(int i = 0; i < this.scoresArray.length; i++) {
            sum = sum + this.scoresArray[i];
            count++;
        }

        this.average = sum / count;
    }

    /**
     * accessor method for average
     * @return double average;
     */
    public double getAverage() {
        return this.average;
    }


}

如果GUI是您任务的次要部分,并且您只是想给每个人留下深刻印象,我建议使用GUI编辑器来制作您的UI:


在我编写swing应用程序的时候,我会使用GUI编辑器。当然,代码比定制的要详细一点,但可以节省时间。

如果您想保存对一组jbutton的引用,但不知道在编译时需要多少jbutton,可以使用ArrayList之类的jbutton集合。您可以将按钮添加到使用GridLayout的JPanel中,并将其放置在JScrollPane中,如果您想显示一组按钮

或者,我认为最好是,一个JTable可能比一堆JButton更干净。通过这种方式,您可以拥有一个甚至可以容纳100行的网格,然后用户可以根据需要在任意多行或任意少行中填充数据。要了解如何编写Swing JTable,请查看以下教程:


关于使用GUI构建器,我建议不要这样做。一方面,它可能会阻碍您学习Swing的能力,另一方面,您可能会在最终的GUI设计中失去一些灵活性。此外,对于复杂的GUI,它们有时比手工制作的Swing代码更难使用。

必须单击按钮来选择测试分数似乎是一个奇怪的UI。相反,使用JSpinner或JComboBox允许用户选择分数。

缩进代码4个空格或使用post editor中的{}按钮。我帮你们修好了。你们不明白我想允许用户输入他想要的任意多或少的测试分数。从三分到五分到十分。我应该怎么做GUI中的哪种类型的代码允许这样做???在输入代码之前,您必须对GUI进行总体设计,并且已经提到了一些JButton听起来不太适合这种情况。GUI编辑器生成的代码有利于原型设计,但不利于学习如何创建GUI。在我看来,将学生指向GUI编辑器是个坏主意。我有点同意,但另一方面,当我学习swing时,我发现生成代码非常有用,这样我就可以了解它是如何完成的,也许下次我需要使用gridbaglayout时,请记住,这种方法的问题是,通常拖放GUI代码生成器生成的代码非常糟糕,至少NetBeans Matisse生成器就是这样,而不是我建议有人学习的代码。
JButton test-scores1 = new JButton ("Button1");
JButton test-scores1 = new JButton ("Button2");
JButton test-scores1 = new JButton ("Button3");