From 5bc9eabe409b6908b5d0bd75e24a6b50514020c4 Mon Sep 17 00:00:00 2001 From: sowgro Date: Wed, 3 May 2023 08:55:22 -0400 Subject: add rounded corners test --- apcs/block.java | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 apcs/block.java (limited to 'apcs/block.java') diff --git a/apcs/block.java b/apcs/block.java new file mode 100644 index 0000000..cf3d31f --- /dev/null +++ b/apcs/block.java @@ -0,0 +1,81 @@ +package apcs; + +import java.awt.Dimension; +import java.awt.EventQueue; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.RenderingHints; +import java.awt.geom.Path2D; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; + +// + +public class block { + + public static void main(String[] args) { + new block(); + } + + public block() { + EventQueue.invokeLater(new Runnable() { + @Override + public void run() { + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { + ex.printStackTrace(); + } + + JFrame frame = new JFrame("Testing"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.add(new TestPane()); + frame.pack(); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + } + }); + } + + public class TestPane extends JPanel { + + private RightEnd rightEnd; + + public TestPane() { + rightEnd = new RightEnd(100, 100, 40); + } + + @Override + public Dimension getPreferredSize() { + return new Dimension(100, 100); + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + int x = (getWidth() - 100) / 2; + int y = (getHeight()- 100) / 2; + Graphics2D g2d = (Graphics2D) g.create(); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g2d.translate(x, y); + g2d.fill(rightEnd); + g2d.dispose(); + } + + } + + public class RightEnd extends Path2D.Float { + + public RightEnd(float width, float height, float radius) { + moveTo(0, 0); + lineTo(width - radius, 0); + curveTo(width, 0, width, 0, width, radius); + lineTo(width, height - radius); + curveTo(width, height, width, height, width - radius, height); + lineTo(0, height); + closePath(); + } + } +} -- cgit v1.2.3