Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,如何使用包含数组的参数调用图形方法?_Java_Arrays_Graphics_Parameters_Parameter Passing - Fatal编程技术网

在java中,如何使用包含数组的参数调用图形方法?

在java中,如何使用包含数组的参数调用图形方法?,java,arrays,graphics,parameters,parameter-passing,Java,Arrays,Graphics,Parameters,Parameter Passing,在main方法中调用我的graphics方法,以便它可以使用数组中的点绘制三角形,我遇到了一些挑战。当我不使用数组,只使用正则数时,这幅画效果很好,但该程序的思想是用户将值输入数组以供使用。关于如何画三角形有什么建议吗?代码如下:(我有所有正确的导入) 您需要提供一些方法来将信息从main方法传递到myPanel类。在您的情况下,您可以简单地提供一个自定义构造函数,比如 public class myPanel extends JPanel{ private int[] xTri; p

在main方法中调用我的graphics方法,以便它可以使用数组中的点绘制三角形,我遇到了一些挑战。当我不使用数组,只使用正则数时,这幅画效果很好,但该程序的思想是用户将值输入数组以供使用。关于如何画三角形有什么建议吗?代码如下:(我有所有正确的导入)


您需要提供一些方法来将信息从
main
方法传递到
myPanel
类。在您的情况下,您可以简单地提供一个自定义构造函数,比如

public class myPanel extends JPanel{

  private int[] xTri;
  private int[] yTri;

  public myPanel(int[] xTri, int[] yTri) {
      this.xTri = xTri;
      this.yTri = yTri;
  }

  public void paint (int [] numbers, Graphics g) {
                super.paint (g);
                g.setColor (Color.BLACK);
                g.fillPolygon (xTri, yTri, xTri.length);
  }
}
观察。。。 不要从
JFrame
扩展,您正在创建一个新实例,这只是混淆了问题

由于Swing的工作方式,您需要确保在事件调度线程的上下文中启动UI。所以,在你的主要方法中,你应该使用

EventQueue.invokeLater(new Runnable() {
    @Override
    public void run() {
        // Your UI code here
    }
});

并在
run
方法中构建您的UI

简而言之,您没有。您将信息提供给
myPanel
,当绘制
myPanel
时,它会使用它,因此如果它在自己的类中,我在哪里或如何将数组的信息提供给myPanel?在您的情况下,可能是
myPanel
的构造函数
public class myPanel extends JPanel{

  private int[] xTri;
  private int[] yTri;

  public myPanel(int[] xTri, int[] yTri) {
      this.xTri = xTri;
      this.yTri = yTri;
  }

  public void paint (int [] numbers, Graphics g) {
                super.paint (g);
                g.setColor (Color.BLACK);
                g.fillPolygon (xTri, yTri, xTri.length);
  }
}
EventQueue.invokeLater(new Runnable() {
    @Override
    public void run() {
        // Your UI code here
    }
});