diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2023-05-03 08:55:22 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2023-05-03 08:55:22 -0400 |
commit | 5bc9eabe409b6908b5d0bd75e24a6b50514020c4 (patch) | |
tree | 6e4a1cab85b6b0785f6ec93dc8bc787f656b454a | |
parent | 8762883e41507343c1d1a8f14bd4604a1423871d (diff) | |
download | NPEhero-5bc9eabe409b6908b5d0bd75e24a6b50514020c4.tar.gz NPEhero-5bc9eabe409b6908b5d0bd75e24a6b50514020c4.tar.bz2 NPEhero-5bc9eabe409b6908b5d0bd75e24a6b50514020c4.zip |
add rounded corners test
-rw-r--r-- | apcs/block.java | 81 |
1 files changed, 81 insertions, 0 deletions
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(); + } + } +} |