Java 如何获取用户输入,将其验证为整数,并使用它创建多个矩形?
我对编码非常陌生,现在,我正在尝试创建一个脚本(如果你这么称呼它的话)并绘制一些用户在随机位置输入的矩形。现在,我在整理代码时遇到了一些困难:Java 如何获取用户输入,将其验证为整数,并使用它创建多个矩形?,java,Java,我对编码非常陌生,现在,我正在尝试创建一个脚本(如果你这么称呼它的话)并绘制一些用户在随机位置输入的矩形。现在,我在整理代码时遇到了一些困难: import cs1.Keyboard; import java.applet.Applet; import java.awt.*; public class Rectangles extends Applet{ public static void main (String[] args){ String message;
import cs1.Keyboard;
import java.applet.Applet;
import java.awt.*;
public class Rectangles extends Applet{
public static void main (String[] args){
String message;
System.out.println ("Enter an integer:");
message = Keyboard.readString();
String input = message;
int inputInt;
try{
inputInt = Integer.parseInt(input);
}
catch (Exception e){
System.out.println("Not an integer; please use a valid integer");
System.exit(-1);
}
System.out.println ("You entered \"" + message + "\"");
}
public void paint (Graphics page){
for(int i=1; i < message; i++){
int width = 10 + (int) (Math.random() * 40);
int height = 10 + (int) (Math.random() * 40);
int x = (int) (Math.random() * (getWidth() - width));
int y = (int) (Math.random() * (getHeight() - height));
page.drawRect (width,height,x,y);
}
}
}
但是,如果我不使用代码,我会得到:
Rectangles.java:30: error: cannot find symbol
for(int i=1; i < message; i++){
^
symbol: variable message
location: class Rectangles
矩形。java:30:错误:找不到符号
for(int i=1;i
我不知道如何组织它,以便生成用户所需的矩形数量:有人可以帮助我编写脚本,以便public void paint可以使用该变量吗?在代码消息中是一个字符串,您在其中使用for循环,并将其与整数变量进行比较。 首先用Input替换消息,然后for循环应该可以工作 根据甲骨文文档- 公共空间涂料(图g) 画这块画布。 为画布创建子类的大多数应用程序都应该重写此方法,以便执行一些有用的操作(通常是画布的自定义绘制)。默认操作只是清除画布。重写此方法的应用程序不需要调用super.paint(g) 您是否对Canvas进行了子类化?我想您还没有对Canvas进行子类化,这就是为什么这个方法会抛出错误的原因
希望这能解决您的问题。您混合了用户范例,如果您使用的是图形界面,您不想使用命令行界面(反之亦然)。小程序不想(传统上)有一个
main
方法,所以这是一个错误的开始,我还建议你完全避免使用applet,除了麻烦之外,它们不再真正受支持(applet插件已经被浏览器开发人员删除)消息不存在于main
之外。它超出范围。我得到的唯一错误是for(int I=1;I
是因为消息
超出了范围。我的一般建议是退一步。如果您是Java/编程新手,请回到基础知识,了解变量范围是如何工作的,了解如何在程序中传递信息。一旦您做到了这一点,就可以开始讨论更复杂的主题图形和用户界面的设计
Rectangles.java:30: error: cannot find symbol
for(int i=1; i < message; i++){
^
symbol: variable message
location: class Rectangles