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
来要求用户输入值时我得到一个错误,因为我没有在(public static void main)下使用它,但当我尝试添加public时static void main,我得到了paint方法的错误。
非常感谢任何帮助。
答案 0 :(得分:0)
您需要将代码放入方法中。方法是唯一可以执行的方法。 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();
}
}
我也注意到你从未真正称过油漆。我不知道在这里建议什么,因为我不知道你想要做什么。您希望它如何/为什么运行?
答案 1 :(得分:0)
这是学习java的常见问题。您必须声明public static void main(String[] args){}
方法,因为这是应用程序开始执行的位置。您可以将此方法视为与您的班级分开。它仍然必须在类中声明,但是你可以在任何类中声明该方法并使用它来执行操作,区别在于如果在另一个类中声明它,则必须从该类执行该程序。
为了在main
中使用您班级中的方法,您可以执行以下两项操作之一:
将方法声明为static。这意味着该方法不直接与该类的任何一个对象相关联,而只是该类本身的一部分。所以,如果你有一个班级:
public class Apple{
public void eat(){}
public static void describe(){}
}
然后你必须有一个特定的new Apple yourApple().eat();
吃,但你可以通过Apple.describe();
描述任何苹果。事实上这个例子有点虚构,因为在现实生活中你可以描述任何一个特定的苹果以及一般的苹果,但在这个java案例中你只能描述一个普通的苹果,如果你去new Apple yourApple().describe();
它将是等价的到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");
}
}
我希望有所帮助。