/* * A Java program that creates a custom component with its own renderer, * and demonstrates how to render stroke objects. * * Ben Bederson, January 29, 2002 */ import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; public class BasicStroker extends JFrame { static public void main(String[] args) { new BasicStroker(); } public BasicStroker() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); StrokeCanvas canvas = new StrokeCanvas(); canvas.setPreferredSize(new Dimension(400, 400)); getContentPane().add(canvas); pack(); setVisible(true); } } class StrokeCanvas extends JComponent { public void paintComponent(Graphics graphics) { Graphics2D g2 = (Graphics2D) graphics; g2.setColor(Color.white); g2.fillRect(getX(), getY(), getWidth(), getHeight()); Stroke stroke = new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND); g2.setStroke(stroke); g2.setColor(Color.red); Rectangle2D rect = new Rectangle2D.Double(10, 10, 100, 100); Line2D line = new Line2D.Double(50, 50, 200, 100); g2.draw(rect); g2.draw(line); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Stroke stroke2 = new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER); g2.setStroke(stroke2); Line2D line2 = new Line2D.Double(200, 50, 50, 100); g2.draw(line2); } }