Java将参数发送到方法paint

Java将参数发送到方法paint,java,Java,在我的类DrawShape中,我想将参数发送到方法paint,如 g.drawRect (a, b, 200, 200); 如何实现我的代码 class MyCanvas extends JComponent { public void paint(Graphics g) { g.drawRect (10, 10, 200, 200); } } public class drawShape { public drawShape(){ JFrame wind

在我的类DrawShape中,我想将参数发送到方法paint,如

 g.drawRect (a, b, 200, 200); 
如何实现我的代码

class MyCanvas extends JComponent {

public void paint(Graphics g) {
    g.drawRect (10, 10, 200, 200);  
  }
}

public class drawShape {

  public drawShape(){
    JFrame window = new JFrame();
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setBounds(30, 30, 300, 300);
    window.getContentPane().add(new MyCanvas());
    window.setVisible(true);
  }
}

每次需要重新绘制组件时,都会从EDT调用方法
paint
。绘图参数应视为
MyCanvas
的属性。 例如:

class MyCanvas extends JComponent {
    int a,b;
    public void setProps(int a, int b) {
        this.a=a; this.b=b;
        repaint();//mark this component to be repainted
    }
    public void paint(Graphics g) {
        super.paint(g);
        g.drawRect (a, b, 200, 200);
    }

  static public void main(String args[]){
    JFrame window = new JFrame();
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setBounds(30, 30, 300, 300);
    MyCanvas canvas=new MyCanvas();
    canvas.setProps(20,40);
    window.getContentPane().add(canvas);
    window.setVisible(true);
  }
}

每次需要重新绘制组件时,都会从EDT调用方法
paint
。绘图参数应视为
MyCanvas
的属性。 例如:

class MyCanvas extends JComponent {
    int a,b;
    public void setProps(int a, int b) {
        this.a=a; this.b=b;
        repaint();//mark this component to be repainted
    }
    public void paint(Graphics g) {
        super.paint(g);
        g.drawRect (a, b, 200, 200);
    }

  static public void main(String args[]){
    JFrame window = new JFrame();
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setBounds(30, 30, 300, 300);
    MyCanvas canvas=new MyCanvas();
    canvas.setProps(20,40);
    window.getContentPane().add(canvas);
    window.setVisible(true);
  }
}

你的问题一点也不清楚,你只是想调用paint方法还是需要为paint函数添加参数?你能具体化你的问题吗?你的问题一点也不清楚,你只是想调用paint方法还是需要向paint函数添加参数?你能具体化你的问题吗?我需要从另一个类调用setprops,我能做其他类吗?我能创建像d1=new drawShape()这样的对象吗;我需要使用d1.setprops,它不能在创建的画布上调用
setprops
(您必须保留引用)。使
MyCanvas画布
成为某个“主类”的全局字段。然后在需要时调用canvas.setProps(x,y),这是在一些事件上,如用户输入事件或计时器。我需要从另一个类调用setProps,我可以在其他类中创建对象,如d1=new drawShape();我需要使用d1.setprops,它不能在创建的画布上调用
setprops
(您必须保留引用)。使
MyCanvas画布
成为某个“主类”的全局字段。然后在需要时调用canvas.setProps(x,y),这是在一些事件上,比如用户输入事件或计时器。