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