【问题标题】:Simple java Homework help, need help with gui简单的java作业帮助,需要gui帮助
【发布时间】:2023-03-24 06:40:02
【问题描述】:

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

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

这是我的程序

.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");

【问题讨论】:

  • 缩进代码 4 个空格或使用帖子编辑器中的 {} 按钮。我帮你修好了。

标签: java arrays swing arraylist


【解决方案1】:

如果 GUI 对你的任务来说是次要的,而你只是想给每个人留下深刻印象,我建议使用 GUI 编辑器来制作你的 UI:

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

在我编写摇摆应用程序的那一天,我会使用 GUI 编辑器。当然,代码比自定义生成的代码要冗长一些,但可以节省您的时间。

【讨论】:

  • GUI 编辑器生成的代码有利于原型设计,但根本不利于学习如何创建 GUI。 IMO 将学生指向 GUI 编辑器是个坏主意。
  • 我有点同意,但另一方面,当我学习摇摆时,我发现生成代码很有帮助,这样我就可以看看它是如何完成的,也许下次我需要要使用 gridbaglayout,请记住
  • 这种方法的问题在于,通常由拖放式 GUI 代码生成器生成的代码非常糟糕(至少 NetBeans Matisse 生成器是这样),而不是我的代码会推荐某人学习和学习。
【解决方案2】:

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

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

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

【讨论】:

  • 你们不明白我想让用户输入任意多或少的测试分数。从三分到五分到十分。我应该怎么做 GUI 中的什么类型的代码允许这样做??
  • 在输入代码之前,您必须对您的 GUI 进行整体设计,并且已经提到一堆 JButton 听起来不太合适。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    相关资源
    最近更新 更多