首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用paintComponent方法

调用paintComponent方法
EN

Stack Overflow用户
提问于 2014-03-04 18:28:06
回答 1查看 432关注 0票数 0

我希望有一个圆,可以用给定的x,y,颜色参数调用它的方法来重新创建。但我很难做到。我希望使用JComponent作为对象而不是组件。

代码语言:javascript
复制
public class OlympicRingsComponent extends JComponent {

public void paintComponent(Graphics g) {

    super.paintComponent(g);

    Graphics2D g2 = (Graphics2D)g;
    g2.translate(10, 10);
    g2.setStroke(new BasicStroke(7));

    Ellipse2D.Double circle = new Ellipse2D.Double(0,0,100,100);

    g2.setPaint(Color.BLUE);
    g2.draw(circle);

}}

这个代码很好用。但是我希望能够调用一个方法来创建一个新的椭圆。

代码语言:javascript
复制
public class OlympicRingsComponent extends JComponent {

protected void paintComponent(Graphics g) {

    super.paintComponent(g);

    Graphics2D g2 = (Graphics2D)g;
    g2.translate(10, 10);
    g2.setStroke(new BasicStroke(7));

    ring(10 , 20 , "Blue");

}
public void ring(int x , int y , String color) {
    Ellipse2D.Double circle = new Ellipse2D.Double( x , y ,100,100);

    g2.setPaint(Color.getColor(color));
    g2.draw(circle);
}}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-04 18:49:05

需要向graphics2D方法添加ring()参数,如下所示:

代码语言:javascript
复制
public void ring(int x , int y , String color, graphics2D g2) {
    Ellipse2D.Double circle = new Ellipse2D.Double( x , y ,100,100);

    g2.setPaint(Color.getColor(color));
    g2.draw(circle);
}

并使用ring()参数调用graphics2D

代码语言:javascript
复制
ring(10 , 20 , "Blue", g2);

我觉得这应该管用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22180008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档