Java发送参数到方法paint

时间:2016-05-30 07:34:01

标签: java

在我的班级中绘制Shape我想将参数发送到方法画像

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

1 个答案:

答案 0 :(得分:1)

每次需要重新绘制组件时,都会从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);
  }
}
相关问题