Java,新手需要使用命令行参数的帮助
我已经在谷歌上搜索了几个小时,还没有找到我做错了什么,对不起,我真的不擅长java 我有一个基本的2d图形程序,可以绘制网格。首先,我使用设置值来设置网格的大小。现在,我已经被设置了用命令行中输入的值替换设置值的任务。我就是不能让它工作。请你看看我的代码,告诉我我做错了什么Java,新手需要使用命令行参数的帮助,java,command-line,Java,Command Line,我已经在谷歌上搜索了几个小时,还没有找到我做错了什么,对不起,我真的不擅长java 我有一个基本的2d图形程序,可以绘制网格。首先,我使用设置值来设置网格的大小。现在,我已经被设置了用命令行中输入的值替换设置值的任务。我就是不能让它工作。请你看看我的代码,告诉我我做错了什么 import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class W1Graphics extends JFrame {
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class W1Graphics extends JFrame
{
MyPanel myVeryOwnPanel;
public static void main(String[] args)
{
W1Graphics w = new W1Graphics();
w.setVisible(true);
}
public W1Graphics(String[] args)
{
String a = args[0];
String b = args[1];
int x = Integer.parseInt(a);
int y = Integer.parseInt(b);
setTitle("Jimmy Hill");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,300);
setLocation(300,300);
myVeryOwnPanel = new MyPanel(x, y);
add(myVeryOwnPanel);
}
}
提前感谢您能给我的任何帮助。在您的电话线上:
W1Graphics w=neww1graphics()代码>调用没有参数的构造函数。您要做的是调用构造函数,它采用String[]
类型。将创建W1Graphics对象的行更改为W1Graphics w=newW1Graphics(args)代码>命令行参数是给main方法而不是W1Graphics方法的参数
此代码如下所示:
String a = args[0];
String b = args[1];
int x = Integer.parseInt(a);
int y = Integer.parseInt(b);
应该是你的主要方法。然后应该将x和y参数传递给图形构造函数
例:
公共图形(整数x,整数y)
{
}
当然,在你的主要方法中,你可以这样说:
String a = args[0];
String b = args[1];
int x = Integer.parseInt(a);
int y = Integer.parseInt(b);
W1Graphics w = new W1Graphics(x, y);
w.setVisible(true);
编辑:当然也可以将参数传递给构造函数!但更好的编程实践是为主方法保留解析命令行参数,以便分离方法功能。您不想在W1Graphics构造函数中处理命令行参数异常,而是在调用main方法之前处理它 命令行参数来自不应编译的main方法-您正在尝试使用默认构造函数创建W1Graphics
的实例。看起来您希望传入args
in,即W1Graphics w=新的W1Graphics(args)代码>。非常感谢你,真不敢相信我没有意识到这一点。现在可以了。
String a = args[0];
String b = args[1];
int x = Integer.parseInt(a);
int y = Integer.parseInt(b);
W1Graphics w = new W1Graphics(x, y);
w.setVisible(true);