import javax.swing.*; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.*; import java.awt.BasicStroke; public class StrokeTest4 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); StrokeTest4 app = new StrokeTest4(); frame.getContentPane().add(app); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(10, 10, 300, 200); frame.setTitle("ƒ^ƒCƒgƒ‹"); frame.setVisible(true); } public void paintComponent(Graphics g){ Graphics2D g2 = (Graphics2D)g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); BasicStroke miterStroke1 = new BasicStroke(20.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 3.0f); g2.setStroke(miterStroke1); GeneralPath polygon = new GeneralPath(); polygon.moveTo(20, 150); polygon.lineTo(40, 50); polygon.lineTo(60, 150); g2.draw(polygon); polygon.reset(); BasicStroke miterStroke2 = new BasicStroke(20.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 5.0f); g2.setStroke(miterStroke2); polygon.moveTo(120, 150); polygon.lineTo(140, 50); polygon.lineTo(160, 150); g2.draw(polygon); polygon.reset(); BasicStroke miterStroke3 = new BasicStroke(20.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f); g2.setStroke(miterStroke3); polygon.moveTo(220, 150); polygon.lineTo(240, 50); polygon.lineTo(260, 150); g2.draw(polygon); }