如何在java中用箭头绘制矩形?

时间:2014-08-30 14:26:14

标签: java swing

如何在java Applet中使用带有绘图事件的箭头绘制矩形

像FaceBook消息:

enter image description here

2 个答案:

答案 0 :(得分:4)

  

我正在尝试使用多边形和矩形。

在玩Area个对象时,我一直忘记使用Shape课程。

您可以使用add(...)方法将两个Shapes一起添加,然后绘制它们:

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;

public class BalloonRectangle extends JPanel
{
    @Override
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g.create();

        Rectangle rectangle = new Rectangle(0, 0, 150, 50);

        Polygon triangle = new Polygon();
        triangle.addPoint(0, 0);
        triangle.addPoint(10, 5);
        triangle.addPoint(0, 10);
        triangle.translate(150, 10);

        Area balloon = new Area( rectangle );
        balloon.add( new Area( triangle ) );

        g2d.translate(50, 50);
        g2d.setColor( Color.YELLOW );
        g2d.fill( balloon );
        g2d.setColor( Color.GRAY );
        g2d.draw( balloon );

        g2d.dispose();
     }

    private static void createAndShowGUI()
    {
        JFrame frame = new JFrame("BalloonRectangle");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add( new BalloonRectangle() );
        frame.setLocationByPlatform( true );
        frame.setSize(250, 200);
        frame.setVisible( true );
    }

    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowGUI();
            }
        });
    }
}

您还可以查看Playing With Shapes以获取更多想法。

答案 1 :(得分:2)

我无法看到您的图像,但如果您想绘制几何图元的组合,则可以使用诸如Rectangle2D和Polygon之类的形状,并使用Graphics2D实例填充它们。不要直接在JApplet的paint方法中绘制,而是在applet显示的JPanel的paintComponent方法中绘制。