当前位置: 首页 > 知识库问答 >
问题:

如何接收Array的用户输入,然后用于绘制方法?

楚硕
2023-03-14
package package13;

import java.awt.Graphics;
import java.util.Scanner;

import javax.swing.JApplet;

public class BarChartApplet extends JApplet {


    final int baseX=30;
    final int baseY=100;
    final int width=10;
    final int space=30;

    //int height[]={30,20,40,90};

    int height[]=new int[4];

    System.out.println("Enter 4 heights of the bars");
    Scanner scan = new Scanner (System.in);

    for (int k=0;k<height.length;k++) {
    height[k]=scan.nextInt();
    }

    int upperLeftX;
    int upperLeftY;


    public void paint(Graphics g) {

        g.drawLine(5, 100, 200, 100);

        for (int i=0;i<height.length;i++) {

            upperLeftX=baseX+i*(width+space);
            upperLeftY=baseY-height[i];
            g.fillRect(upperLeftX,upperLeftY,width,height[i]);

        }

    }
}}

我试图让用户输入数组的值。我使用这些数组的值,然后用来设置我正在创建的条形图中的条形图的高度。我遇到的问题是,当我试图创建一个System.out.print来要求用户输入值时,我得到一个错误,因为我没有在(公共静态无效主)下使用它,但是当我试图添加公共静态空隙主,我得到一个错误的油漆方法。

非常感谢您的帮助。

共有2个答案

龙逸清
2023-03-14

您需要将代码放入一个方法中。方法是唯一可以执行的东西。main方法是任何Java程序的入口点。它必须是静态的,因为还不存在任何实例

这段代码特别需要包装成main:

public static void main(String[] args) {
    int height[]=new int[4];

    System.out.println("Enter 4 heights of the bars");
    Scanner scan = new Scanner (System.in);

    for (int k=0;k<height.length;k++) {
        height[k]=scan.nextInt();
    }
}

我还注意到,你从来没有真正叫油漆。我不知道该建议什么,因为我不知道你想做什么。你希望它如何运行/为什么运行?

刁英朗
2023-03-14

这是学习java的常见问题。必须声明一个public static void main(String[]args){}方法,因为应用程序从那里开始执行。你可以把这种方法看作是与你的班级分开的。它仍然必须在类中声明,但您可以在任何类中声明该方法并使用它执行操作,不同之处在于,如果您在另一个类中声明它,则必须从该类执行程序。

要在main中使用类中的方法,可以执行以下两种操作之一:

将方法声明为静态。这意味着该方法不与该类的任何一个对象直接关联,而只是类本身的一部分。所以,如果你有一个类:

public class Apple{
    public void eat(){}
    public static void describe(){}
}

然后你必须有一个特定的新苹果你的苹果()。吃();但是你可以通过去Apple.describe();来描述任何苹果。事实上,这个例子有点虚构,因为在现实生活中,你可以描述任何一个特定的苹果,也可以描述一个普通的苹果,但是在这个java案例中,你只能描述一个普通的苹果,如果你去新苹果你的苹果()。描述();它将等同于Apple.describe()

这种使用方法的静态方式很难在大型项目中扩展,因为它试图围绕java的类格式工作,但这是一种快速制作简单示例的好方法。我已经介绍过的第二种方法叫做实例化,它的工作原理是在主类中制作一个Apple,并对其调用方法:

public class Apple{
    public static void main(String[] args){
        Apple apple = new Apple();
        Apple.eat();
    }
    public void eat(){
        System.out.println("Nom");
    }
}

我希望这有帮助。

 类似资料:
  • 本文向大家介绍python3.4控制用户输入与输出的方法,包括了python3.4控制用户输入与输出的方法的使用技巧和注意事项,需要的朋友参考一下 一、输入 1.函数格式:input() 2.函数功能:接受一个标准输入数据,返回string类型。ctrl+z结束输入。 3.实例: 4.接受多个数据输入,使用eval()函数,间隔符必须是逗号 5.接受多行输入的一个方法 二、输出 1.函数格式:pr

  • 我在test1.php输入表单,我想检查数据库中的用户输入,如果用户输入不存在于数据库中,它将test2.php并在test2.php.回声用户输入,重定向回到test1.php和回声,不可用。 现在,如果输入存在于sql中,我可以重定向回上一页,但无法在test2中回显用户输入。关闭连接后返回php。 这里是test1.php 这里是testexec。php 这里是test2。php

  • 问题内容: Python在函数的每次调用之间在控制台输出中插入一个空行,但我不希望这样做(即,我希望提示位于控制台中的连续行上,而不是由空行分隔)。有没有办法做到这一点?我试着以为它可能像函数一样工作,但事实并非如此… 码: 输出: 所需的输出: 编辑: 正如其他人在评论部分中指出的那样,除了在Spyder IDE中使用IPython接口之外,这个问题对我来说都是不可重现的。如果有人在Spyder

  • 我正在为java类的介绍进行分配,并且遇到了困难,问题如下: “要求用户输入一个数字。您应该使用一个输入对话框来进行此输入。请确保将对话框中的字符串转换为实数。程序需要跟踪用户输入的最小数字和输入的最大数字。询问用户是否要输入另一个数字。如果是,请重复此过程。如果不是,请输出用户输入。 当用户想要退出时,此程序在程序末尾输出最大和最小的数字。 此外,您的程序应该考虑到用户只输入一个数字的情况。在这

  • 让我明确一点--我试图使用Twilio STUDIO来实现这一点--而不是编码。我有一个完整的IVR构建和工作,但我不知道如何保存呼叫者输入的选择(DTMF)。是否有一个简单的插件或addon可以节省用户输入?

  • 我正在设置一个,它在用户输入整数之前一直执行。但是,按照我现在的方式,循环在输入整数后再次打印消息,然后程序正常执行。有人能建议一种方法来使输入整数后不再打印该消息吗?谢了!