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

时间:2011-02-02 17:05:51

标签: java arrays swing arraylist

我必须创建一个名为testscores

的类

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

这是我的程序

.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的了解,我必须预定义测试分数。例如,我为测试分数创建了三个对象,但如果用户想要提供第四个测试分数,则不能。

JButton test-scores1 = new JButton ("Button1");
JButton test-scores1 = new JButton ("Button2");
JButton test-scores1 = new JButton ("Button3");

3 个答案:

答案 0 :(得分:1)

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

或者我认为最好,JTable可能比一堆JButton更干净。这样,您可以拥有一个甚至可以容纳100行的网格,然后用户可以根据需要在尽可能多的行中填充数据。要了解如何编写Swing JTable代码,请查看此处的教程:How to Use Tables

关于使用GUI构建器 - 我建议反对它。例如,它可能会妨碍您学习Swing的能力,而另一方面,您可能会在最终的GUI设计中失去一些灵活性。同样对于复杂的GUI,它们有时比手工制作的Swing代码更难使用。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果GUI是您的作业的次要,并且您只想给每个人留下深刻印象,我建议使用GUI编辑器来制作您的用户界面:

http://www.eclipse.org/vep/

回到我编写swing应用程序的那一天,我将使用GUI编辑器。当然,代码比定制的更冗长,但节省了时间。