当前位置:编程学习 > JAVA >>

java图形编辑

我绘制了一个矩形,但是当再绘制其它图形时,先前的那个矩形会被擦除,怎么才能解决啊,急救!!!我用了ArrayList来存储所画的图形,也不能解决。 --------------------编程问答-------------------- swing吗?重绘了. --------------------编程问答-------------------- 上代码 --------------------编程问答-------------------- 都不知道你代码怎么写的,怎么给你建议

从你描述的现象,你肯定是每画一个新的图形都调用了一次清除的过程
比如 super.paintComponent 啊什么的

如果你的重写的 paintComponent 方法

那你就应该在这个方法里一次性把 ArrayList 中所有的图形都画完,只在开头调一次 super.paintComponent --------------------编程问答-------------------- 给你个不错的视频教程你可以看看,也许有用
视频简介
DRP分销资源计划项目之业务介绍
DRP分销资源计划项目之数据库设计
北京动力节点_DRP分销资源计划项目之HTML
北京动力节点_DRP分销资源计划项目之CSS
北京动力节点_DRP分销资源计划项目之JavaScript
北京动力节点_DRP分销资源计划项目之Ajax
北京动力节点_DRP分销资源计划项目之JSP
北京动力节点_DRP分销资源计划项目之Servlet
北京动力点_DRP分销资源计划项目之JDBC
北京动力节点_DRP分销资源计划项目之XML
北京动力节点_DRP分销资源计划项目之JSTL
北京动力节点_DRP分销资源计划项目之CVS
北京动力节点_DRP分销资源计划项目之Web Services
北京动力节点_DRP分销资源计划项目之Tomcat
北京动力节点_DRP分销资源计划项目之设计模式
北京动力节点_DRP分销资源计划项目之设计原则
北京动力节点_DRP分销资源计划项目之UML
北京动力节点_Struts
北京动力节点_Spring
北京动力节点_Hibernate  --------------------编程问答-------------------- 一般不会的.除非你清除了,就算是清除你也可以从新画 --------------------编程问答-------------------- 我也想知道这是怎么回事! --------------------编程问答-------------------- private ArrayList<Shape> shapes = new ArrayList<Shape>();

public void addShape(Shape s){
    shapes.add(s);
    repaint();
}

public void paintComponent(Graphics g){
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D)g;
    
    g2d.setPaint(Color.BLACK);
    for(Shape shape : shapes){
        g2d.draw(shape);
    }
} --------------------编程问答-------------------- 看看这个程序,对你有些帮助吗~~


import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;

public class b
{  
   public static void main(String[] args)
   {  
      DrawFrame frame = new DrawFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.show();
   }
}

/**
   A frame that contains a panel with drawings
*/
class DrawFrame extends JFrame
{
   public DrawFrame()
   {
      setTitle("DrawTest");
      setSize(WIDTH, HEIGHT);

      // add panel to frame

      DrawPanel panel = new DrawPanel();
      Container contentPane = getContentPane();
      contentPane.add(panel);
   }

   public static final int WIDTH = 400;
   public static final int HEIGHT = 400;  
}

/**
   A panel that displays rectangles and ellipses. 
*/
class DrawPanel extends JPanel
{  
   public void paintComponent(Graphics g)
   {  
      super.paintComponent(g);
      Graphics2D g2 = (Graphics2D)g;

      // draw a rectangle

      double leftX = 100;
      double topY = 100;
      double width = 200;
      double height = 150;

      Rectangle2D rect = new Rectangle2D.Double(leftX, topY,
         width, height);
      g2.draw(rect);

      // draw the enclosed ellipse

      Ellipse2D ellipse = new Ellipse2D.Double();
      ellipse.setFrame(rect);
      g2.draw(ellipse);

      // draw a diagonal line

      g2.draw(new Line2D.Double(leftX, topY, 
         leftX + width, topY + height));

      // draw a circle with the same center

      double centerX = rect.getCenterX();
      double centerY = rect.getCenterY();
      double radius = 150;

      Ellipse2D circle = new Ellipse2D.Double();
      circle.setFrameFromCenter(centerX, centerY,
         centerX + radius, centerY + radius);
      g2.draw(circle);
   }
}
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,