# Painting ```java @Override public void paint(Graphics g) { final Graphics2D graphics2D = (Graphics2D) g; } ``` * `component.paint(Graphics)` * `paintComponent(Graphics)` -> `paintBorder(Graphics)` -> `paintChildren(Graphics)` ## Graphics2D * `drawString()` * `drawImage()` * `drawLine()` * `drawArc()` / `drawRect()` / `drawOval()` / `drawPolygon()` * `draw()` * `fillArc()` / `fillRect()` / `fillOval()` / `fillPolygon()` * `fill()` * `rotate()` * `scale()` * `shear()` * `translate()` ### Stroke ```java import java.awt.*; Graphics2D graphics2D = (Graphics2D) g; BasicStroke stroke = new BasicStroke(1.f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER,10.f,{10.f},0.f); graphics2D.setStroke(stroke); ``` #### Join style * JOIN_BEVEL * JOIN_MITER * JOIN_ROUND #### End-cap style * CAP_BUTT * CAP_ROUND * CAP_SQUARE ### Paint * `Color`, `GradientPaint`, `TexturePaint` ```java import java.awt.*; Paint paint = new GradientPaint(x1,y1,color1,x2,y2,color2); graphics2D.setPaint(paint); ``` ### AffineTransform * `AffineTransform.getRotateTransform()` * `AffineTransform.getScaleTransform()` * `AffineTransform.getShearTransform()` * `AffineTransform.getTranslateTransform()`