Java,新手需要使用命令行参数的帮助

Java,新手需要使用命令行参数的帮助,java,command-line,Java,Command Line,我已经在谷歌上搜索了几个小时,还没有找到我做错了什么,对不起,我真的不擅长java 我有一个基本的2d图形程序,可以绘制网格。首先,我使用设置值来设置网格的大小。现在,我已经被设置了用命令行中输入的值替换设置值的任务。我就是不能让它工作。请你看看我的代码,告诉我我做错了什么 import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class W1Graphics extends JFrame {

我已经在谷歌上搜索了几个小时,还没有找到我做错了什么,对不起,我真的不擅长java

我有一个基本的2d图形程序,可以绘制网格。首先,我使用设置值来设置网格的大小。现在,我已经被设置了用命令行中输入的值替换设置值的任务。我就是不能让它工作。请你看看我的代码,告诉我我做错了什么

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