//学了太多的基础,感觉一直没太大的进步,因此,我决定增加以下学习的难度,以此来增加自己的学习兴趣;
/*** Java 绘图相关技术的学习*Graphics类相关技术知识:* 1.Graphics类是所有图像绘图的基类,是一个抽象类;* 2.Graphic2D继承Graphics类,对Graphics类进行了扩展。* 3.我们如果需要创建一个绘图类,推荐使用Graphics2D,该类分别使用不同的类来表示图形;* 1.对于该类图形,我们使用GraphicsD类的draw()方法绘制,使用fill()进行填充;* 2.在java.awt.geom包中,实现了Shape接口的图形类可以上述两个方法。例如Line2D;** 3.在各类图形类中,我们使用Double和Float这两个实现类进行图形的不同精度构造,不同的精度需要的内存也不同。** 相关绘图知识介绍* 1.颜色类Color* 1.可以创建任何颜色,与平台无关;* 2.Color(int r,int g,int b)或者Color(int rgb);* 3.该类还定义了许多静态颜色常量,可以通过Color.RED访问;* 4.设置颜色setColor()* * 2.画笔* 1.在GraphicsD类可以通过setStroke(Strock strock)方法设置画笔的属性,包括线条的粗细,虚实和线段端点的样式。* 2.Strock接口作为参数* * 3.文本* 1.Font(String name ,int style,int size);字体名字,类型和大小* 2.SetFont(Font font);* 3.drawString(String str,int x,int y):通过Graphics2D类中的方法来绘制显示字体;* * * 4.图像绘制* 1.获取图片资源路径getResource();* 2.获取图片getImage();* 3.drawImage()绘制显示图片* * 4.jSlider.getValue():可通过滑动组件来控制图片的缩放比例* * * */
package app;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import java.net.*;//包含有main函数的类的类名和文件名必须保持一致
public class ImageShape extends JFrame
{/****/private static final long serialVersionUID = 1L;private final int width = 700;private final int height = 700;private Image img;private Shape Rect;private Font font;public ImageShape(){super();init();}private void init(){this.setSize(width, height);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体面板为绘图面板对象this.setContentPane(new Canvas());this.setTitle("绘图");}public static void main(String[] args){new ImageShape().setVisible(true);}class Canvas extends JPanel{/****/private static final long serialVersionUID = 1678373920467727747L;public void paint(Graphics g){super.paint(g);//Graphics用法g.setColor(new Color(255, 0, 0));g.fill3DRect(100, 100, 200, 200, true);g.setColor(Color.GRAY);g.fillRect(350, 100, 200, 200);//Graphics2D的用法Graphics2D g1 = (Graphics2D) g;g1.setColor(new Color(0,255,0));Shape[] shape = new Shape[2];shape[0] = new Ellipse2D.Double(100, 350, 200, 250);shape[1] = new Rectangle2D.Double(150, 400, 100, 100);g1.draw(shape[0]);g.setColor(new Color(0,0,255));g1.fill(shape[1]);//相关用法Graphics2D g2 = (Graphics2D) g;g2.setColor(Color.BLACK);g2.setFont(new Font("宋体", Font.BOLD, 15));g2.drawString("Java 绘图学习.", 400, 400);//图片绘制URL url = ImageShape.class.getResource("lena.jpg");img = Toolkit.getDefaultToolkit().getImage(url);Graphics2D g3 = (Graphics2D) g;/* g3.drawImage(img, 0, 0, this);*///图片的缩放int w = img.getWidth(this) * 30 / 100;int h = img.getHeight(this) * 30 / 100;g3.drawImage(img, 400,450,w,h,this);}}
}