diff options
Diffstat (limited to 'apcs')
| -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(); +        } +    } +}  | 
