Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)
2013-12-23 23:58
811 查看
控制台程序。
其他部分与上一例相同。
import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; @SuppressWarnings("serial") public class SketcherView extends JComponent implements Observer { public SketcherView(Sketcher theApp) { this.theApp = theApp; } // Method called by Observable object when it changes public void update(Observable o, Object rectangle) { // Code to respond to changes in the model... } // Method to draw on the view @Override public void paint(Graphics g) { // Temporary code... Graphics2D g2D = (Graphics2D)g; // Get a Java 2D device context g2D.setPaint(Color.RED); // Draw in red // Position width and height of first rectangle Point2D.Float p1 = new Point2D.Float(50.0f, 10.0f); float width1 = 60; float height1 = 80; // Create and draw the first rectangle Rectangle2D.Float rect = new Rectangle2D.Float(p1.x, p1.y, width1, height1); g2D.draw(rect); // Position width and height of second rectangle Point2D.Float p2 = new Point2D.Float(150.0f, 100.0f); float width2 = width1 + 30; float height2 = height1 + 40; // Create and draw the second rectangle g2D.draw(new Rectangle2D.Float( (float)(p2.getX()), (float)(p2.getY()), width2, height2)); g2D.setPaint(Color.BLUE); // Draw in blue // Draw lines to join corresponding corners of the rectangles Line2D.Float line = new Line2D.Float(p1,p2); g2D.draw(line); p1.setLocation(p1.x + width1, p1.y); p2.setLocation(p2.x + width2, p2.y); g2D.draw(new Line2D.Float(p1,p2)); p1.setLocation(p1.x, p1.y + height1); p2.setLocation(p2.x, p2.y + height2); g2D.draw(new Line2D.Float(p1,p2)); p1.setLocation(p1.x - width1, p1.y); p2.setLocation(p2.x - width2, p2.y); g2D.draw(new Line2D.Float(p1, p2)); g2D.drawString("Lines and rectangles", 60, 250); // Draw some text } private Sketcher theApp; // The application object }
其他部分与上一例相同。
相关文章推荐
- Java基础之在窗口中绘图——绘制圆弧和椭圆(Sketcher 3 drawing arcs and ellipses)
- Java基础之在窗口中绘图——使用模型/视图体系结构在视图中绘图(Sketcher 1 drawing a 3D rectangle)
- Java基础之在窗口中绘图——绘制曲线(CurveApplet 1)
- Java基础之在窗口中绘图——利用多态性使用鼠标自由绘图(Sketcher 7 with a crosshair cursor)
- Java基础之在窗口中绘图——绘制星星(StarApplet 1)
- Java基础之在窗口中绘图——填充星型(StarApplet 2 filled stars)
- Java绘图: 使用Graphics类绘制线段、矩形、椭圆/圆弧/扇形、图片、文本
- Java基础之在窗口中绘图——渐变填充(GradientApplet 1)
- 学习Canvas绘图与动画基础 绘制直线(二)
- Java基础之处理事件——添加菜单图标(Sketcher 8 with toolbar buttons and menu icons)
- Android 绘图基础:Canvas画布——自定义View基础(绘制表盘、矩形、圆形、弧、渐变)
- Java绘图: 使用Graphics类绘制线段、矩形、椭圆/圆弧/扇形、图片、文本
- Java基础之创建窗口——向窗口中添加菜单(Sketcher)
- JAVA进阶8.2——绘图基础(2)绘制图像
- JAVA进阶8.3——绘图基础(3)绘制文字
- Java绘图: 使用Graphics类绘制线段、矩形、椭圆/圆弧/扇形、图片、文本
- Win32 绘图基础 -- 绘制直线、边框、贝塞尔曲线、填充、裁剪
- Android 绘图基础:Canvas画布——自定义View基础(绘制表盘、矩形、圆形、弧、渐变)
- Java基础之在窗口中绘图——显示曲线的控制点(CurveApplet 2 displaying control points)
- Java基础之在窗口中绘图——移动曲线的控制点(CurveApplet 3 moving the control points)